home *** CD-ROM | disk | FTP | other *** search
/ Gold Medal Software 3 / Gold Medal Software - Volume 3 (Gold Medal) (1994).iso / virus / vds30j.arj / VDS.DOC < prev    next >
Text File  |  1994-03-14  |  109KB  |  1,969 lines

  1.                               V
  2.  
  3.                                    D
  4.  
  5.                                         S
  6.             
  7.  
  8.                           VIRUS DETECTION SYSTEM
  9.  
  10.                          Professional Version 3.0
  11.  
  12.  
  13.            Copyright   1992-1994 by VDS Advanced Research Group
  14.                             All Rights Reserved
  15.  
  16.  
  17.                                  Feb 1994
  18.                            Baltimore, MD, U.S.A.                                   WARNING
  19.  
  20.           THIS SOFTWARE AND MANUAL ARE BOTH PROTECTED BY
  21.      U.S. COPYRIGHT LAW (TITLE 17 UNITED STATES CODE).
  22.      UNAUTHORIZED REPRODUCTION AND/OR SALES MAY RESULT
  23.      IN IMPRISONMENT OF UP TO ONE YEAR AND FINES OF UP TO
  24.      $10,000 (17 USC 506). COPYRIGHT INFRINGERS MAY ALSO BE
  25.      SUBJECT TO CIVIL LIABILITY.
  26.                                      
  27.                                      DISCLAIMER
  28.  
  29.           The developers of VDS make no warranty of any kind, either express
  30.      or implied, with respect to this software and accompanying documentation.
  31.      In no event shall the developers be liable for any damages arising out of the
  32.      use of or inability to use the included programs. The entire risk as to the
  33.      results and performance of this software package is assumed by the customer.
  34.      We specifically disclaim any implied warranties of merchantability or fitness
  35.      for any purpose. Use at your own risk.
  36.           The developers of VDS reserve the right to revise the software and
  37.      accompanying documentation and to make changes in the contents without
  38.      obligation to notify any person of such revision or changes.
  39.                                   
  40.                                   ACKNOWLEDGEMENTS
  41.  
  42.           We would like to thank a few people who helped us test and improve all or parts of VDS.
  43.      Specifically, Mike, Henri Delger, Paul Ferguson, Vesselin Bontchev, Ahmed Yahya,  Bill
  44.      Whittington, Tony Drake, and Bill Lambdin.
  45.                                   
  46.                                   TABLE OF CONTENTS
  47.  
  48. I. INTRODUCTION. . . . . . . . . . . . . . . . . . . . . . . . . . . . .  1
  49.      A. Background . . . . . . . . . . . . . . . . . . . . . . . . . . .  1
  50.           1. Do you need anti-viral programs?. . . . . . . . . . . . . .  1
  51.           2. Will scanners protect me? . . . . . . . . . . . . . . . . .  1
  52.           3. How is VDS different? . . . . . . . . . . . . . . . . . . .  1
  53.      B. What is VDS? . . . . . . . . . . . . . . . . . . . . . . . . . .  1
  54.      C. Why VDS. . . . . . . . . . . . . . . . . . . . . . . . . . . . .  2
  55.      D. Components of VDS. . . . . . . . . . . . . . . . . . . . . . . .  3
  56.  
  57. II. SYSTEM REQUIREMENTS. . . . . . . . . . . . . . . . . . . . . . . . .  5
  58.      A. Hardware & Software. . . . . . . . . . . . . . . . . . . . . . .  5
  59.  
  60. III. INSTALLATION. . . . . . . . . . . . . . . . . . . . . . . . . . . .  6
  61.      A. INSTALL command line options . . . . . . . . . . . . . . . . . .  6
  62.      B. Installing VDS . . . . . . . . . . . . . . . . . . . . . . . . .  6
  63.           1. Express Setup:. . . . . . . . . . . . . . . . . . . . . . .  7
  64.           2. Custom Setup: . . . . . . . . . . . . . . . . . . . . . . .  7
  65.      C. Uninstalling VDS . . . . . . . . . . . . . . . . . . . . . . . .  8
  66.  
  67. IV. OPERATION of VDS . . . . . . . . . . . . . . . . . . . . . . . . . .  9
  68.      A. Operational Cycle. . . . . . . . . . . . . . . . . . . . . . . .  9
  69.      B. How does VDS work. . . . . . . . . . . . . . . . . . . . . . . .  9
  70.           1. VDS command line options. . . . . . . . . . . . . . . . . . 11
  71.           2. Configuration (VDSPRO30.INI) file . . . . . . . . . . . . . 12
  72.      C. VDS as a scanner . . . . . . . . . . . . . . . . . . . . . . . . 14
  73.           1. DUMPSIG and external virus signatures . . . . . . . . . . . 14
  74.      D. VDS Device Driver. . . . . . . . . . . . . . . . . . . . . . . . 16
  75.      E. VDSTSR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
  76.      F. VDSFSCAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
  77.           1. Command line options. . . . . . . . . . . . . . . . . . . . 18
  78.      G. VFSLITE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
  79.           1. Options and default settings. . . . . . . . . . . . . . . . 19
  80.           2. Configuration (VDSFSCAN.INI) file . . . . . . . . . . . . . 19
  81.           3. Command line options. . . . . . . . . . . . . . . . . . . . 21
  82.           4. DOS errorlevels returned. . . . . . . . . . . . . . . . . . 23
  83.           5. Differences between VDSFSCAN and VFSLITE options. . . . . . 23
  84.      H. How to use VITALFIX. . . . . . . . . . . . . . . . . . . . . . . 24
  85.           1. Command line options. . . . . . . . . . . . . . . . . . . . 24
  86.      I. Scenarios and Messages . . . . . . . . . . . . . . . . . . . . . 25
  87.      J. Common Questions and Answers . . . . . . . . . . . . . . . . . . 26
  88.      K. Known Problems and Conflicts . . . . . . . . . . . . . . . . . . 30
  89.  
  90. V. VIRUS ATTACK METHODS. . . . . . . . . . . . . . . . . . . . . . . . . 31
  91.      A. Virus defined. . . . . . . . . . . . . . . . . . . . . . . . . . 31
  92.      B. Features of PC Viruses . . . . . . . . . . . . . . . . . . . . . 31
  93.           1. Stealth Virus . . . . . . . . . . . . . . . . . . . . . . . 31
  94.           2. Dumb Virus. . . . . . . . . . . . . . . . . . . . . . . . . 31
  95.           3. Encryptive Virus. . . . . . . . . . . . . . . . . . . . . . 31
  96.           4. Polymorphic Virus . . . . . . . . . . . . . . . . . . . . . 31
  97.      C. Types of PC Viruses. . . . . . . . . . . . . . . . . . . . . . . 32
  98.           1. MBR/BR Virus. . . . . . . . . . . . . . . . . . . . . . . . 32
  99.           2. Program Infector. . . . . . . . . . . . . . . . . . . . . . 32
  100.                a. Simple Infector. . . . . . . . . . . . . . . . . . . . 32
  101.                b. Companion Virus. . . . . . . . . . . . . . . . . . . . 32
  102.                c. System Infector. . . . . . . . . . . . . . . . . . . . 32
  103.           3. Multi-partite Virus . . . . . . . . . . . . . . . . . . . . 33
  104.      D. Some facts about viruses . . . . . . . . . . . . . . . . . . . . 33
  105.  
  106. VI. PARTITION/BOOT SECTOR INFECTIONS . . . . . . . . . . . . . . . . . . 34
  107.      A. Preliminary information. . . . . . . . . . . . . . . . . . . . . 34
  108.      B. How to recover with RESTORE option . . . . . . . . . . . . . . . 37
  109.      C. Manual Recovery Procedure. . . . . . . . . . . . . . . . . . . . 37
  110.  
  111. VII. HOW TO DEAL WITH VIRUSES. . . . . . . . . . . . . . . . . . . . . . 41
  112.      A. Recommended Guidelines . . . . . . . . . . . . . . . . . . . . . 41
  113.  
  114.  
  115.                          I. INTRODUCTION
  116.  
  117. A. Background
  118.  
  119. 1. Do you need anti-viral programs?
  120.  
  121.     If someone had asked us this question five years ago, we would have probably
  122. said, "Yes, but if you're careful, only use diskettes from the factory, and don't use 
  123. diskettes from other people, then you can probably get away without one." Unfortunately, 
  124. the same is not true today. During the past few years we have seen an increase in the 
  125. number of viruses from a few dozen to over 2500, and many of the new viruses are 
  126. becoming more sophisticated. In addition, almost every major business that uses 
  127. microcomputers has experienced a virus infection on some scale. Even some 
  128. shrink-wrapped software from major software developers has been infected. 
  129. It is just too much of a gamble not to have anti-virus protection these days. 
  130.  
  131. 2. Will scanners protect me?
  132.  
  133.     While there are many anti-viral products on the market, the PC world has yet to
  134. see a comprehensive solution based on both scientific analysis and the use of sophisticated
  135. techniques. A common feature shared by most anti-viral programs known as scanners
  136. is their pattern searching approach. They simply look for a sequence of identifying bytes
  137. (not necessarily consecutive) inside existing executable code such as that contained in
  138. program files and boot sectors. This approach works quite well for many viruses. The
  139. trouble is that a pattern searching approach requires fore-knowledge of specific viruses and
  140. their identifiers. This means that they are useless against new, unknown viruses. In
  141. addition, new viruses which mutate upon each infection have been developed. They make
  142. extraction of an easily discernible search pattern impossible.
  143.  
  144. 3. How is VDS different?
  145.  
  146.     VDS Advanced Research Group would like to shift the focus from simple pattern
  147. matching to one of analyzing viral behavior. In this way, rather than keeping the market
  148. alive through forcing users to upgrade frequently as others have done, we can instead offer
  149. a more comprehensive solution. If others had taken this approach, computer viruses may
  150. have been less of a threat than they certainly are today. You must remember that scanners
  151. were first developed by well-meaning hackers who lacked a clear, long-term perspective
  152. in this matter. It was the most obvious and easiest thing to do at the time and  scanners
  153. became popular over time. 
  154.     VDS (Virus Detection System) was developed in reaction to the limitations of
  155. existing anti-viral programs. Due to the large number of ways that viruses can exploit the
  156. DOS environment, the anti-viral methods employed in practice are often ad hoc and
  157. cannot easily be formalized. VDS makes a judicious choice of systematic approaches
  158. towards the detection of viruses. It uses sophisticated techniques to detect most possible
  159. viruses in the DOS environment. 
  160.     If you are faced with the problem of recurring virus infections, or have data that
  161. just cannot be replaced without significant loss, you are invited to try VDS on your
  162. system. VDS ensures easy detection and eradication with little user intervention. With
  163. VDS in place, viruses cease to be an impediment to productivity.
  164.  
  165. B. What is VDS?
  166.  
  167.     VDS is a set of programs designed to contain the spread of computer viruses that
  168. target PCs running MS/PC DOS 3.0 or above.  VDS works by providing early detection
  169. and quick recovery. The operation of VDS is not virus-specific. In addition, the current
  170. implementation does not rely on a memory-resident program which degrades the
  171. performance of your computer by verifying programs every time they are run; however,
  172. an independent memory-resident scanner is also provided. VDS installs itself on your
  173. system using a special process which checks first for known viruses, and then creates a
  174. fingerprint of all system areas and executable files. From then on, VDS will thoroughly
  175. check the system at scheduled intervals and will notify you of any suspicious modifications
  176. detected regardless of whether the virus is a known variant or a new virus altogether.  
  177.  
  178. C. Why VDS?
  179.  
  180. -   It is NOT virus-specific.
  181. -   It does NOT need frequent upgrades.
  182. -   It does NOT require much user expertise.
  183. -   It is NOT a TSR (i.e. memory resident) with possible conflicts. This also means
  184.     that it does not use up precious RAM. The TSR module is optional.
  185. -   It maintains an audit log to pinpoint how a virus entered the system.
  186. -   It can use an external virus signature database for easy updates.
  187. -   It works even when a stealth virus is ACTIVE in memory.
  188. -   It can handle any size DOS disk.
  189. -   It is compatible with DOS 3.0 and above.
  190. -   It supports MS Windows 3.x.
  191. -   It can CAPTURE some memory-resident viruses to speed up diagnosis.
  192. -   It can recover a damaged  partition table easily.
  193. -   It can fix an infected boot sector on the fly.
  194. -   It is blazingly FAST.
  195. -   It includes an automated boot sector recovery tool.
  196. -   It works on Novell Netware, Banyan, and Lantastic network drives.
  197. -   It can usually HEAL itself even when infected.
  198. -   It automatically updates the baseline database after additions/deletions.
  199. -   It can identify most common viruses by name.
  200. -   It can be set to run based on a user-defined schedule.
  201. -   It can remove most known and unknown viruses generically.
  202. -   It can create an emergency diskette for extra safety.
  203. -   It sports a very intuitive object-oriented user interface.
  204. -   It includes a robust integrity checker for ultimate defense against viruses. D. Components of VDS
  205.  
  206.     VDS package includes the following components:
  207.           
  208. VDS.EXE 
  209.     An integrity checker that creates a fingerprint database for possible virus targets
  210.     (programs, boot sectors) and verifies them later for suspicious modifications. In the
  211.     case of such modifications, the integrity checker offers to restore the affected areas
  212.     to their original state by using generic disinfection techniques, and backups (for
  213.     system areas). If the restoration attempt fails, the integrity checker informs the
  214.     user and requests permission to remove the damaged object by deletion. For
  215.     example, some overwriting viruses do not preserve the functionality of their
  216.     victims. To be able to restore such programs, one needs to use the original copies
  217.     or good backups. In 95% of the cases that involve a virus that can successfully
  218.     spread, restoration by generic disinfection is possible, and guarantees 100%
  219.     recovery. Viruses that corrupt the operation of their victims get noticed easily and
  220.     do not tend to get too far.
  221.  
  222. VDSFSCAN.EXE
  223.     A known and heuristic virus scanner that searches for patterns or code sequences
  224.     and uses advanced algorithms to identify polymorphic and simple viruses inside
  225.     executable code  such as program files and boot sectors. It can also use a user-
  226.     defined signature file to permit the addition of newly  discovered viruses.
  227.      
  228. VDSTSR.EXE
  229.     A memory-resident (TSR) program that searches programs before they are run
  230.     or optionally before they are copied. It also examines the boot sector of a floppy
  231.     diskette that may have been left in drive A: before warmboot attempts. What's
  232.     more, it can scan programs being unzipped or de-archived by a compression
  233.     utility regardless of the version or the maker of such software. In other words, you
  234.     do not need to update the TSR just because you decided to use a newer release
  235.     of your favorite file compression utility. It also provides mechanisms to render
  236.     some stealth viruses inoperable.
  237.    
  238. ISVDSTSR.COM
  239.     A small (17 bytes) program that sets the DOS errorlevel to indicate the presence
  240.     of the TSR component in memory. The purpose of this program is allow system
  241.     administrators in networked environments to enforce loading TSR anti-virus
  242.     protection on workstations before they are permitted to access programs on a file
  243.     server.
  244.  
  245. DUMPSIG.EXE
  246.     A virus signature extraction utility. It is useful when you need to add an external
  247.     signature.
  248.   
  249. VITALFIX.EXE
  250.     A disk repair utility designed specifically to deal with boot sector infections. It
  251.     provides the user with various options to eradicate a possible virus, to save and
  252.     to restore important system information such as the partition table, and to search
  253.     disks for a possibly relocated copy of the boot sector. It is much safer to use this
  254.     utility than other disk sector editors since it performs sanity checks before
  255.     overwriting important  sectors on a hard drive.
  256.  
  257. INSTALL.EXE
  258.     An installation program that automates loading VDS on local and on network
  259.     drives. It prepares an emergency diskette for your computer so that you can
  260.     check and restore system areas and program files after booting from a clean
  261.     floppy diskette. This emergency diskette is formatted as a bootable DOS diskette
  262.     and the required VDS components and fingerprint and recovery information are
  263.     copied over.
  264.  
  265. VDSCATCH.BIN     
  266.     A device driver that implements several anti-stealth features and aids VDS
  267.     integrity checker in maintaining reliable operation even when a stealth virus is
  268.     active in memory. It also prohibits direct writes to the master and DOS boot
  269.     sectors as well as low-level format attempts.
  270.                          
  271.                          II. SYSTEM REQUIREMENTS
  272.  
  273. A. Hardware & Software
  274.  
  275.     VDS has the following minimum requirements and limitations  to operate
  276. correctly:
  277.    
  278. An IBM PC or compatible computer
  279. MS/PC-DOS 3.0 or higher
  280. 384K of available memory
  281. A hard drive (necessary only for integrity checks)
  282. Up to 4000 program files per integrity database (16000 if  192K of extended memory is
  283.    available)
  284. Up to 32 integrity databases per catalog
  285.  
  286.     In addition, VDSTSR takes up about 30K of memory when loaded. It can be
  287. loaded into upper memory area under DOS 5.0 or later. VDSCATCH.BIN device driver
  288. takes up about 300 bytes, and it can also be loaded high.
  289.     Some systems utilize disk compression software to increases the storage capacity
  290. of drives by compressing and decompressing data on the fly. On such systems, you must
  291. have the necessary device drivers loaded before VDS. MS-DOS 6.x now includes this
  292. optional feature by providing the DoubleSpace  interface. The operation of DoubleSpace
  293. is well-integrated into DOS, and works in a transparent manner. VDS is tested and found
  294. to work as expected on drives compressed using DoubleSpace. 
  295.                         
  296.                         III. INSTALLATION
  297.  
  298. A. INSTALL command line options
  299.  
  300.     Here is the INSTALL command line options that you can use to set up VDS.
  301.          
  302. INSTALL.EXE     [{-|/}BEH?MNUXH]   [src_path]  [dest_path]  
  303.  
  304. -Banyan                 Install on a Banyan server.
  305. -M                      Use monochrome screen attributes.
  306. -Help or ?              To see the command  line options with examples.
  307. -Emergency <path>  Prepare an emergency diskette.
  308. -Xpress                 Install with default values.
  309. -Uninstall <path>       Remove VDS from the given directory.
  310.  
  311. B. Installing VDS on a hard drive
  312.  
  313.     You will need your bootable DOS diskette (preferably the original), VDS
  314. Distribution diskette, and at least one blank floppy diskette that can go in your drive A:
  315. for installation. The blank diskette will be formatted and prepared as a bootable DOS
  316. diskette by VDS. The emergency diskette will be used in the case of infections that affect
  317. the master boot/partition sector   (if VDS cannot repair it on the fly). 
  318.     The floppy restoration process requires you to use this VDS emergency diskette.
  319. Some computers have a boot sequence setting in CMOS that allows booting from the
  320. hard disk even if there is a floppy diskette in drive A:. Before starting the installation,
  321. please change this setting to boot from drive A:. Here are the steps you should follow for
  322. proper installation:
  323.  
  324. 1)  Turn the computer off (NOTE: It is very important that you do not perform a
  325.     warmboot by holding down Ctrl-Alt-Del keys since  a virus can fake a warmboot
  326.     and stay in memory).
  327.  
  328. 2)  Put the DOS diskette in drive A: (NOTE: The version of DOS on the floppy
  329.     diskette must be the same as the one installed on your hard drive). Turn the
  330.     computer on. It should boot from the floppy diskette.
  331.  
  332. 3)  If the boot was successful, you should now see the A:> prompt. If the system asks
  333.     you for time and date, just press Enter  until you are at the A:> prompt.
  334.  
  335. 4)  Remove the DOS diskette and replace it with the VDS distribution diskette.
  336.  
  337. 5)  Type A:INSTALL and press Enter.
  338.  
  339. *   INSTALL will now complete the installation process by asking you  a few questions.
  340.  
  341. 6)  You will see two options: Express setup and custom setup. If you press the Enter
  342.     key, INSTALL will use the default settings to configure the operation of VDS.
  343.     Custom setup allows you to modify many parameters to suit your needs.
  344.  
  345. *   If you have chosen Custom setup, please skip to the next section.
  346.  
  347.     1. Express Setup:
  348.  
  349. 7)  A configuration file will be created and the necessary files will be transferred to
  350.     the hard disk in C:\VDSPRO30 directory.
  351.  
  352. 8)  If this is the first time you are installing VDS on your computer, INSTALL will
  353.     modify  your AUTOEXEC.BAT and CONFIG.SYS to add the lines needed to
  354.     load, VDSCATCH.BIN, VDSTSR.EXE and run VDS.EXE every time you
  355.     reboot the computer. VDSCATCH.BIN takes up a few hundred bytes.
  356.  
  357. 9)  You will next see the list of files on the hard drive scroll by as VDS scans for
  358.     infections and creates the baseline profile of all executable files on the disk. There
  359.     should be lots of disk activity. If VDS finds that there are infected files, you will
  360.     be asked if VDS should remove them. 
  361.  
  362. 10) INSTALL will ask you if you would like to prepare an emergency diskette. Put
  363.     a blank diskette in drive A:. MAKE SURE YOU DO NOT HAVE ANYTHING
  364.     YOU NEED ON THIS DISKETTE. It will be formatted as a bootable diskette.
  365.     INSTALL will copy fingerprint databases and the VDS programs to the
  366.     emergency diskette.
  367.  
  368. 11) INSTALL will ask you if you wish to view a tutorial to become familiar with the
  369.     operation of VDS. If you answer Yes, you will se a few pages of explanation.
  370.  
  371. 12) You can write-protect the emergency diskette at this time and store it in a
  372.     convenient location. INSTALL will inform you that the computer will restart,
  373.     please remove any floppy diskettes and then press a key. If VDS is installed
  374.     correctly, you will see it verify the complete system after the computer boots up.
  375.     This completes the install process (if you enabled floppy booting in CMOS, you
  376.     can change it back to the hard disk).
  377.  
  378.     2. Custom Setup:
  379.  
  380. 7)  INSTALL will ask you for the location of VDS distribution files and the home
  381.     directory for VDS. If the home directory does not exist, INSTALL will ask you
  382.     if you wish to create it. Type in the desired location where VDS should be
  383.     installed. A configuration file will be created and the necessary files will be
  384.     transferred to the hard disk in the directory you have specified.
  385.  
  386. 8)  If this is the first time you are installing VDS on your computer, INSTALL will
  387.     ask you if it should modify  your AUTOEXEC.BAT and CONFIG.SYS to add
  388.     the necessary lines to load VDSCATCH.BIN, VDSTSR.EXE and run VDS.EXE
  389.     every time you reboot the computer. VDSCATCH.BIN takes up a few hundred
  390.     bytes. Your original AUTOEXEC.BAT will be saved in AUTOEXEC.VDS, and
  391.     the original CONFIG.SYS will be saved in CONFIG.VDS.
  392.  
  393. 9)  INSTALL will ask you which drives you wish to protect. You should pick drive
  394.     C: and any other drives you wish to protect. For each drive you picked, you will
  395.     see the list of files on the hard drive scroll by as VDS scans for infections and
  396.     creates the baseline profile of all executable files on the disk. There should be lots
  397.     of disk activity. If VDS finds that there are infected files, you will be asked if VDS
  398.     should remove them. 
  399.  
  400. 10) INSTALL will ask you if you would like to prepare an emergency diskette. Put
  401.     a blank diskette in drive A:. MAKE SURE YOU DO NOT HAVE ANYTHING
  402.     YOU NEED ON THIS DISKETTE. It will be formatted as a bootable diskette.
  403.     INSTALL will copy fingerprint databases and the VDS programs to the
  404.     emergency diskette.
  405.  
  406. 11) INSTALL will ask you if you wish to view a tutorial to become familiar with the
  407.     operation of VDS. If you answer Yes, you will se a few pages of explanation.
  408.  
  409. 12) You can write-protect the emergency diskette at this time and store it in a
  410.     convenient location. INSTALL will inform you that the computer will restart,
  411.     please remove any floppy diskettes and then press a key. If VDS is installed
  412.     correctly, you will see it verify the complete system. This completes the install
  413.     process (if you enabled floppy booting in CMOS, you can change it back to the
  414.     hard disk).
  415.   
  416. C. Uninstalling VDS
  417.  
  418.     You can remove VDS from your hard drive by running the INSTALL program
  419. with the -Uninstall command line option:
  420.  
  421.     C:\> C:\VDSPRO30\INSTALL   -U   C:\VDSPRO30     <enter>
  422.  
  423.     If you have performed a custom setup and specified a different directory name,
  424. then you should substitute that name in the line above. INSTALL checks to see if there
  425. were other files in the directory before VDS was installed. If there were not any, it
  426. removes all the files in VDSPRO30 directory, and then the directory itself. If there were
  427. other files, it displays a warning message and aborts without removing any files. It is up
  428. to you to delete or keep any of those files. You need to perform a "manual" uninstall.
  429. Since VDS keeps almost all of its files in its own directory, removal is a simple procedure.
  430. You should also edit your CONFIG.SYS and AUTOEXEC.BAT to remove the lines
  431. loading VDS components. Your original CONFIG.SYS is renamed to CONFIG.VDS,
  432. and the original AUTOEXEC.BAT is renamed to AUTOEXEC.VDS during installation.
  433. You could use them as well; however, if you have installed any other programs after VDS,
  434. then they might have modified your AUTOEXEC.BAT. Be careful before you copy over
  435. the CONFIG.VDS and AUTOEXEC.VDS if that is the case.  
  436.                       
  437.                       IV. OPERATION of VDS
  438. A. Operational Cycle
  439.  
  440.     After VDS has been installed on a known-to-be-clean system, a complete
  441. verification of the system areas is done each time the machine is started. A daily check of
  442. the entire hard disk will also be done, unless you have selected a specific frequency in
  443. which case a complete check will only be performed when the time period has elapsed.
  444. For best results, VDS should be run from the AUTOEXEC.BAT. It can also be run, just
  445. like any other program, at the user's discretion.
  446.     The periodic checking requires a computer with a real-time clock that can keep
  447. track of date even after the computer is turned off. Most systems have this capability. On
  448. older machines without a real-time clock, the frequency of checks cannot be specified.  
  449.     The VDSTSR module provides users with the ability to scan programs before
  450. they are run or copied. Once loaded, the user does not need to specify which files to scan
  451. every time. VDSTSR will intercept requests to execute a program and will search for
  452. known viruses. If it finds an infection, it will post a simple warning message and prevent
  453. execution or copying of the infected file. VDSTSR also traps warmboot attempts
  454. (CTRL-ALT-DEL) and scans the boot sector of the floppy disk in drive A: if one is
  455. present. This prevents spread of common boot sector infectors such as Stoned and
  456. Michelangelo.
  457.  
  458. B. How does VDS work?
  459.  
  460.     The first time VDS is installed, a baseline for all executable files and the system
  461. areas such as the master boot record (MBR), partition table, and the boot record (BR) is
  462. established. A unique signature is computed for all executable objects on the disk. File
  463. name, size, date, time and signature are combined to initialize the records in the database.
  464. A similar authentication scheme is also used for the VDS program itself. The MBR,
  465. partition table, boot sector, command interpreter, VDSCATCH.BIN, VDSTSR.EXE and
  466. VDS.EXE are backed up. The backups will be used if these areas need to be recovered. 
  467.     When VDS is run, it verifies the integrity of its own code. If it finds that no
  468. tampering has taken place, VDS introduces decoys (small executable programs created at
  469. run-time) to the system to see if an active virus will take the bait. Under normal
  470. circumstances, there is no legitimate reason why these decoys should be altered by any
  471. program. If the decoys are attacked, this indicates the presence of a virus with
  472. great accuracy. If an active virus is detected with this technique, VDS will tell you
  473. whether the attacker was of STEALTH or DUMB variety. If the modifications are
  474. masked by the virus, it is considered to be STEALTH, and DUMB otherwise. VDS uses
  475. a proprietary verification mechanism to detect if the virus attempted to mask the
  476. modifications it has made.
  477.     Some viruses do not fall for decoys that easily. In fact, only memory-resident
  478. program infecting viruses will attack decoys. VDS uses different techniques to catch other
  479. types of viruses not caught by decoys. However, those viruses which do attack the decoys
  480. will be captured and placed in either POV.CCC or POV.XXX (an acronym for Prisoner
  481. Of VDS) depending on which decoy(s) they attack. POV files can later be used to analyze
  482. the captured intruder, or for legal purposes. The reason for the strange extensions (XXX
  483. instead of EXE and CCC instead of COM) is to prevent someone from accidentally
  484. activating the virus by executing the POV files. If you capture an intruder, please mail it
  485. to us on a diskette for interrogation, i.e. examination! This will allow us to keep track of
  486. what viruses are in the wild, and which areas are affected by certain viruses. You will have
  487. an opportunity to place the captured intruder in a file of your choosing, preferably on a
  488. floppy diskette so that you can maintain it for further evaluation on a test system without
  489. any further risk to the computer on which the virus was found. The captured intruder also
  490. makes it simple to extract a scan string if it turns out to be a new virus not identified by
  491. VDS. You can then put the extracted scan string into an external signature database and
  492. search for it on your other disks as well.
  493.     VDS will verify the system areas and all executable files. It will generate a report
  494. of modified files and newly added files since the last time VDS was run. The user is given
  495. an opportunity to override any alarms that may be set off. If you have added new files to
  496. the machine, then VDS will scan each file for known viruses, and if clean, will ask you
  497. if you want to add the file's signature to the database. If any changes in the form of
  498. infection, software configuration or addition of files are encountered, VDS records them
  499. in VDS-STAT.LOG file in the C:\VDSPRO30 directory. This is an ASCII text file and
  500. can be printed or viewed easily. It contains a date and time line showing when VDS was
  501. run. It is very useful to check this log when an infection is discovered to find out how the
  502. virus was most likely introduced to the system.
  503.     If suspicious modifications appear, VDS attempts to identify any virus(es) that may
  504. be responsible for the changes. A report of all identified viruses and the victims affected
  505. as well as the date and time of operation will be appended to VDS-STAT.LOG file.
  506. VDS looks for known viruses in all newly added files to provide early
  507. identification of viruses introduced to the system. If no known viruses are
  508. identified, then the names of scanned files will be written to VDS-STAT.LOG. If a file
  509. is determined to be modified, the user will be given a chance to restore it. If the
  510. restoration attempt fails, then you will be able to positively erase it. Positive erase means that
  511. the file will be overwritten to the end of the last cluster it occupies and then deleted. This
  512. operation is necessary since DOS leaves the contents of erased files intact allowing them
  513. to be recovered by a disk utility program. VDS prevents infected files from being
  514. recovered if you allow VDS to erase them.
  515.     The user can examine reported files at his/her discretion, and take whatever
  516. action s/he deems necessary. When a possible viral attack is detected, our
  517. recommendation is to turn off the computer, boot from a clean write-protected floppy
  518. containing the same version of DOS as your computer (preferably the VDS emergency
  519. diskette prepared during installation), and replace the suspicious files with the originals.
  520. In many cases of actual virus infection, VDS restoration can easily fix program files
  521. completely. Note that this generic cleaning approach is very different from virus-specific
  522. cleaning. It has the capability to recover even from unknown virus infections. What's
  523. more, VDS double-checks to see if the restoration attempt resulted in a full recovery. If
  524. not, VDS will warn you about the problem. 
  525.     For most boot sector viruses, VDS will restore the partition or boot sector
  526. automatically using the backup it made during installation. This approach effectively takes
  527. the guesswork out of MBR/BR recovery. Many other programs look for a relocated MBR
  528. in a specific sector on the disk and then assume that they found the original without being
  529. certain. In some cases, they cause more damage than the virus could. Not so with VDS.
  530.     If automatic restoration is not successful, VDS provides a RESTORE option that
  531. will repair the partition sector using the backup copy saved on VDS emergency diskette.
  532. If you did not prepare an emergency diskette, and the hard disk becomes inaccessible,
  533. then you should either use VITALFIX or try a manual recovery. In most cases, an
  534. experienced computer user can restore the disk by following the simple instructions which
  535. accompany VDS. As we have previously stated, we strongly suggest that you backup your
  536. master boot record on a floppy diskette so that your recovery will be simple. You can use
  537. VITALFIX to do this for you if you did not choose to backup your MBR and BR during
  538. the installation of VDS.
  539.  
  540. 1. VDS command line options
  541.  
  542.     Here are the command line options that VDS integrity checker accepts:
  543.  
  544. VDS.EXE   [{-|/}BIRDSV]   [Drive: | Path]   [{-|/}CX<path>]
  545.    
  546. -Batch Drive:           Check the system areas and the files depending on
  547.                         frequency. This option is the default used during Express
  548.                         installation. It must be followed by a drive letter. 
  549.                  
  550. -Install Drive:         Create fingerprint database for the system areas and the
  551.                         files for a given drive. This option is used by INSTALL
  552.                         program to start VDS during installation. It must be
  553.                         followed by a drive letter.
  554.  
  555. -Rescue                 Use the emergency diskette in drive A: to check the
  556.                         specified drive.
  557.       
  558. -Scan Drive: | Path     Scan for  viruses on the specified drive or path.
  559.       
  560. -Verify Drive: | Path   Perform integrity checks on the specified drive or path.
  561.  
  562. -X<path>                Use the specified external signature file, not the default
  563.                         XTERNAL.SIG.
  564.  
  565. -C<path>                Use the specified configuration file.
  566.  
  567. -D  C:  D:              Process multiple drives specified by drive letters.
  568.       
  569. Examples:
  570.       
  571. To check drive C: for modifications using a non-default configuration file,  
  572. type the following:
  573.       
  574.     VDS  -V  C: -Cc:\integ\vds30.ini
  575.       
  576. To check drive C: using the emergency diskette, type the following:
  577.       
  578.     VDS  -R  C:
  579.          
  580. To scan DOS directory for viruses and use an external signature file, type the following:
  581.       
  582.     VDS  -S   -Xc:\virus\mysigs.txt  C:\DOS
  583.  
  584. To scan C: and D: drives for viruses, type the following:
  585.       
  586.     VDS  -S   -D  C:  D:
  587.          
  588. To perform automatic integrity checks,  include the following line in your
  589. AUTOEXEC.BAT
  590.       
  591.     VDS  -B  C: 2. Configuration (VDSPRO30.INI) file
  592.  
  593.     Many of the operational parameters for VDS are specified in a file named
  594. VDSPRO30.INI, which can be found in the VDS home directory. This is a simple text
  595. file and it can be viewed or edited easily using an ASCII text editor. Following is an
  596. explanation of each line that can be placed in this file.   
  597.     VDS configuration file contains sections marked by certain keywords inside square
  598. brackets. Currently, the following sections are supported:
  599.  
  600.     [HOMEDIR]
  601.     [VERIFY]
  602.     [EXT]
  603.     [IGNORE_DIR]
  604.     [IGNORE_FILE]
  605.     [TREE]
  606.     [REPORT]
  607.     [MSG]
  608.     [FLAGS]
  609.  
  610.     Each section has different requirements for the type of information you can enter.
  611. The INSTALL program automatically creates an appropriate configuration file for you.
  612. If you wish to change certain operational parameters such as the files that should be
  613. excluded from integrity checks, you can do so by editing the configuration file with a text
  614. editor. Refer to the explanation below for details.
  615.  
  616. ; This configuration file specifies operational parameters for VDS Pro.
  617.  
  618. ; VDS.EXE and the system backup files are located in the following directory. 
  619. [HOMEDIR]
  620. C:\VDSPRO30
  621.  
  622. ; Integrity database files are located in the following directory.
  623. [VERIFY]
  624. C:\VDSPRO30
  625.  
  626. ; Files with the following extensions are processed. Adding ??? forces VDS to
  627. scan/check all files.
  628. [EXT]
  629. SCAN = COM,EXE,SYS,OVL,BOO,
  630. VERIFY = COM,EXE,SYS,OVL,BAT,
  631.  
  632. ; Following directories are NOT processed. 
  633. ; This is useful in development environments where programs are modified.
  634. [IGNORE_DIR]
  635.  
  636. ; Following files are NOT processed.
  637. ; INSTALL defaults to excluding CONFIG.SYS and AUTOEXEC.BAT.
  638. [IGNORE_FILE]
  639. C:\CONFIG.SYS
  640. C:\AUTOEXEC.BAT
  641.  
  642. ; Directory tree(s) are stored in the following directory.
  643. ; If you set it to A: or B:, VDS does not store trees.
  644. [TREE]
  645. C:\VDSPRO30
  646.  
  647. ; Messages are written to the following file.
  648. ; If you change it to PRN, all messages are sent to the printer.
  649. [REPORT]
  650. C:\VDSPRO30\VDS-STAT.LOG
  651.  
  652. ; Optional message to be displayed if a virus is found
  653. [MSG]
  654. Call System Administrator x5112 ASAP!
  655.  
  656. ; Operational flags
  657. [FLAGS]
  658. ; If you wish to maintain integrity information for data files
  659. ; set the QUICK_VERIFY to No.
  660. QUICK_VERIFY = Yes
  661. ; Look for virus-like code sequences. False positives are likely.
  662. HEURISTIC_CHECK = Yes
  663. ; Stop if an infected file is found during scan.
  664. PAUSE = No
  665. ; You can eliminate most of the beeps by setting it to No.
  666. BEEP = Yes
  667. ; Make sure VDSCATCH.BIN is loaded from your CONFIG.SYS.
  668. ANTI_STEALTH = Yes
  669. ; If a modified program file is found, you will need to confirm before recovery.
  670. AUTO_RESTORE = No
  671. ; Default is one complete check per day, and system area checks only any
  672. ; other time VDS is run with -Batch option.
  673. FREQUENCY = 1
  674. ; ENTER key can be assigned to SCAN or VERIFY a file
  675. ENTER_KEY = Scan
  676.  
  677. C. VDS as a scanner
  678.  
  679.     VDS integrity checker can serve as an easy-to-use virus scanner that works on
  680. DOS-compatible drives, including LAN server drives. It offers two modes of operation:
  681. Interactive and command-line. Interactive mode is based on a simple menu system that
  682. makes it very easy to access the advanced features of VDS, and it offers context-sensitive
  683. help (F1 key). Command-line mode can also be activated from batch files. VDS accepts
  684. various options to customize its operation. Once VDS is executed, you can scan multiple
  685. diskettes easily. 
  686.     VDS presents a very intuitive object-oriented interface based on simple menus.
  687. By  picking the object you wish to work on, you can exploit the powerful features of VDS
  688. without any need to consult this manual at all. Function keys are assigned to activate
  689. certain operations such as scanning and verification. Each operation applies to the object
  690. currently selected.
  691.     You can move between object selections using the up and down arrow keys.
  692. Pressing ENTER explores a finer level of detail for the members of the parent object. For
  693. example, by highlighting a drive and pressing the ENTER key loads the subdirectories
  694. found on that drive. The ESC key will get you out of a menu, or it will ask if you want
  695. to stop the search or integrity check operation.  The CTRL-BREAK key combination
  696. will also result in a prompt asking if you want to stop the operation.
  697.     We encourage users to start their computer with a clean, write-protected, and
  698. bootable DOS system diskette prior to using VDS to ensure that no viruses are active in
  699. memory while scanning. Some viruses manipulate file access and try to hide their
  700. existence or spread the infection to other programs. Although, VDS will attempt to check
  701. for such viruses, the only guaranteed way to do an untampered search is after
  702. booting the computer from a clean system diskette.  
  703.     VDS will also check its own program file to make sure it is not modified. If it is
  704. modified, it will warn you with a message, and it may abort its operation. VDS tries to
  705. ensure that it is unmodified to ensure correct operation.
  706.     In the case of boot sector infections, VDS will ask you if you would like to remove
  707. an identified virus. This option applies to the master boot sector on hard disks and the
  708. boot sector on floppy diskettes. You should use the SYS program included with DOS to
  709. remove boot sector infectors from the DOS boot record of a hard drive or to keep a
  710. system floppy diskette bootable. When VDS removes a virus from the boot sector of a
  711. floppy diskette, it constructs a BPB (BIOS Parameter Block) for the diskette and adds
  712. instructions to display a message you would get from a non-bootable diskette. In any case,
  713. the viral code will be overwritten. In the case of the hard drive master boot sector, VDS
  714. keeps the partition table intact and replaces the loader code, again overwriting any viral
  715. instructions. It will also attempt to verify that the partition table actually corresponds to
  716. the disk layout.
  717.  
  718. 1. DUMPSIG and external virus signatures
  719.  
  720.     To facilitate keeping up with new viruses, we have added an external signature
  721. capability to VDS. This external file is a simple ASCII text file and can be viewed or
  722. edited easily. You can also use the /Vfilename.ext command line option to specify a
  723. different path for the external signature file. This file can also be used by VDSFSCAN
  724. and VFSLITE.  Here is the format you should use to add a  virus signature entry in this
  725. file:
  726.  
  727.     ; This virus is not stealth
  728.     Disk Muncher
  729.     ; Seems to infect only COM files
  730.     COM
  731.      ; Here is the signature Joe extracted yesterday
  732.     FA 00 23 75 ?? 33 40 B8 ?? 90 90 90 CD 21 
  733.  
  734.     Lines that start with a ; (semi-colon) are treated as comments and ignored. The
  735. order of each field is important. In other words, you should place the virus name before
  736. its type, and the type before the signature. The signature is assumed to be in hexadecimal.
  737. You can use spaces to separate each byte value, or have them in sequence next to each
  738. other. The number of bytes in the string must be no more than 16, and no less than 8.
  739. Wildcard characters are accepted. To indicate a wildcard byte, simply put ?? in the string.
  740. The first byte of the string cannot be a wildcard. 
  741.     The type field can have one of the following values:
  742.  
  743.     COM
  744.     EXE
  745.     BOTH
  746.     BOOT
  747.  
  748.     BOTH implies that the virus signature can be found in either COM or EXE files.
  749. BOOT indicates that the virus attacks Master or DOS boot sectors. 
  750.     VDS tries to read virus information for each entry. To memory requirements low,
  751. only 32 external signatures can be processed. 
  752.     We will usually provide an updated signature file to our customers. In some cases,
  753. you may need to add a signature yourself. For example, if a new virus infects your
  754. computer and VDS captures a sample for you, then you can extract a signature and put
  755. it in the XTERNAL.SIG. In this way you can identify the virus on your disks without
  756. upgrading the scanner program. If you cannot extract a signature, please send us a sample
  757. and we will analyze the virus and provide you with a signature and instructions on how
  758. to handle it. When you extract a signature for a virus, you should take it from the
  759. program entry point on; otherwise, you will need to specify QUICK_SCAN=NO option
  760. in the configuration file to force VDS to examine each byte of the files it scans. If a COM
  761. file starts with a JMP instruction, for example, you should go to the destination of that
  762. jump first. To simplify this process, you should use DUMPSIG utility provided in the
  763. VDS package.
  764.     Note that some viruses (polymorphic) try to defy signature scanning by encrypting
  765. and changing themselves. In such cases, it may be necessary to update the scanner
  766. program. 
  767.  
  768. DUMPSIG  <filename>
  769.  
  770. You can redirect the output from DUMPSIG to a text file by using standard DOS
  771. redirection facility as follows:
  772.  
  773. DUMPSIG  sample.exe   >  sigfile.txt
  774.  
  775. DUMPSIG outputs 256 bytes from the program entry point of a given file in hex format.
  776. You can then look at the output and pick a 16-byte search pattern; you should avoid
  777. using a pattern with many repeated values. By testing the selected pattern on a few
  778. infected samples, you can verify the reliability of your string. It is also important that the
  779. selected pattern does not trigger a false alarm on common files such as those included with
  780. DOS; so it is a very good idea to test it on DOS program files as well.
  781.  
  782. D. VDS Device Driver
  783.  
  784.     VDS creates a device driver for your computer during installation. This device
  785. driver, named VDSCATCH.BIN, has a very simple purpose: Providing VDS with access
  786. to the operating system in a manner that is resistant to stealth viruses. This is necessary
  787. since some viruses have the capability to subvert the operating system calls to hide the
  788. modifications they have made to the programs. When such a beast is active in memory,
  789. it will look as though none of the programs are infected. By recording operating system
  790. access points very early in the startup process, VDSCATCH.BIN enhances the reliability
  791. of VDS scanner and integrity checker.  The memory requirement for this device driver
  792. is quite frugal, about 300 bytes!
  793.     Another function of this device driver is to disallow tracing certain key interrupts.
  794. Many stealth viruses use the trace mode available on the Intel 80x86 CPUs. This way,
  795. they can bypass monitoring software and spread undetected. VDSCATCH.BIN attempts
  796. to stop such tricks. Note that some anti-virus packages use tracing as well, and they may
  797. complain.
  798.  
  799. E. VDSTSR
  800.  
  801.     VDSTSR provides memory-resident virus scanning before execution or copying
  802. of files as well as floppy diskette boot sectors before a warmboot attempt. If it determines
  803. that the file that is about to be run or copied contains a known virus, it will warn the user
  804. showing the name of the virus and then deny the request.
  805.     The purpose of VDSTSR is to prevent introduction of viruses to PCs in a
  806. transparent manner. In other words, the user need not run a virus scanner manually every
  807. time he/she runs a program or copies new files to his/her hard/floppy disk. If there is a
  808. floppy diskette containing a boot sector virus in drive A: and the user attempts to
  809. warmboot the computer without opening the drive door first, VDSTSR scans the floppy
  810. diskette for boot sector viruses and issues a warning. This effectively prevents infections
  811. from common boot sector viruses such as Stoned and Michelangelo.
  812.     As a side effect of this type of mechanism, copy operations will be slowed down
  813. by about 50% depending on the system configuration. The apparent time delay in
  814. program loading, however, should be negligible. Optionally, the user can specify not to
  815. scan upon copy operations but only before execution of programs. This approach is
  816. recommended since it provides most of the protection without overall performance
  817. degradation of the computer system. The default behavior is not to scan during copy
  818. operations.
  819.     Another side effect is the memory required to keep all virus signatures and names
  820. in RAM. Although the code is barely 4K, the signature database takes up about 30K. The
  821. good news is that, VDSTSR can be loaded high under DOS 5.0 and above, therefore not
  822. using up any of the precious 640K conventional memory. 
  823.     To keep the program size to a minimum, VDSTSR only provides a simple
  824. message displaying the virus name and the program as well as producing a beep on the
  825. system speaker to get the user's attention. It does not provide any options to unload it
  826. from memory or support other fancy but rarely used features. VDSTSR does not scan for
  827. complicated polymorphic viruses, either. Following example illustrates a typical case:
  828.  
  829. C:\TEST\FRODO.EXE
  830. <beep> 4096 virus found in FRODO.EXE
  831. Access denied <pause>
  832.  
  833.     The last message comes from COMMAND.COM since VDSTSR issued an error
  834. code as response to the request to execute the program file FRODO.EXE.
  835.     During copy operations, the following message would be displayed:
  836.  
  837. COPY C:\TEST\FRODO.EXE  FRODO2.EXE
  838. <beep> 4096 virus found in FRODO.EXE
  839. Invalid function <pause>
  840.  
  841.     If the user hits the Ctrl-Alt-Del key combination in order to reboot, and there is
  842. a floppy diskette in drive A: with an infected boot sector, a message such as the following
  843. is displayed:
  844.  
  845. <beep> Stoned-2 virus found in floppy diskette boot sector.
  846. Remove the floppy diskette from drive A: now! <pause>
  847.  
  848.     VDSTSR has only one command line option and does not require any special
  849. procedure to install. It requires DOS 3.0 or higher to operate. 
  850.  
  851.     VDSTSR   [/COPY]
  852.  
  853.     The default is not to scan during copy operations, but only before program
  854. execution and warmboot attempts. VDSTSR should be placed in the AUTOEXEC.BAT
  855. file before any other TSRs except network drivers and disk compression drivers.
  856.     A small utility program called ISVDSTSR.COM is supplied to allow system
  857. administrators in LAN environments to check if VDSTSR is loaded on a workstation
  858. before granting permission to login. All this tiny program does is issue a request to
  859. VDSTSR and see if it is answered properly, indicating that VDSTSR is operational in
  860. memory. If everything is working fine, ISVDSTSR will set DOS error level to 1. This can
  861. be used in a batch file as follows:
  862.  
  863. ISVDSTSR.COM
  864. if errorlevel == 1 goto LOADED
  865. echo You have not loaded VDSTSR on your system. You cannot login.
  866. logout
  867. :LOADED
  868.  
  869. F. VDSFSCAN
  870.  
  871.     VDSFSCAN is an easy-to-use virus scanner that works on DOS-compatible drives,
  872. including LAN server drives. It comes in two flavors: Interactive and command-line.
  873. Interactive version is implemented by the VDSFSCAN.EXE, and the command-line
  874. version is provided by VFSLITE.EXE.
  875.     Both programs share a common configuration file named VDSFSCAN.INI. This
  876. is an ASCII text file that modifies the operation of  the scanner. You can edit the settings
  877. in the INI file to tailor it to your needs. VFSLITE is very useful in networked
  878. environments where a post-login scan is desired. It sets DOS error level so that the result
  879. of scanning can be checked in a batch file.
  880.  
  881. 1. Command line options
  882.  
  883.     VDSFSCAN accepts the following command line options:
  884.  
  885. VDSFSCAN.EXE  [{-|/}Lcd]  [{-|/}LRV<filename>] 
  886.               [{-|/}ABCDEGH?NPQUZ]  [{-|/}Fnn] [drive: | Path]  
  887.  
  888. -A  All files regardless of type
  889. -B  Break/ESC is NOT allowed
  890. -C  Complete file scan
  891. -D  Scan all local drives starting with C:  
  892. -E  Erase infected files   
  893. -Fnn     Frequency of scanning in days (0-30). Default is 0, scan every time.
  894. -G  Perform heuristic scan. Off by default.
  895. -H or ?    Help for command line options
  896. -L  Path of error log file. Default is C:\VDS-ELOG.TXT
  897. -N  No memory scan. On by default.
  898. -P  Do NOT pause. Default is pause.   
  899. -Q  Quiet scan. Do not beep.
  900. -R  Output report. If no file is given, C:\VFS-STAT.LOG is used.
  901. -S  Recursively scan subdirectories. Off by default.
  902. -U  Upper memory scan (as well as base memory)
  903. -V  Virus signature file. VFSLITE always looks for XTERNAL.SIG first.
  904. -Z  OEM DOS compatibility mode
  905.  
  906.     If run without any command line parameters, VDSFSCAN offers a menu-driven
  907. interface.
  908.  
  909. G. VFSLITE
  910.  
  911.     VFSLITE is the command-line-only edition of VDSFSCAN. It does not have the
  912. elaborate menus with different colors, context-sensitive help, and other features that the
  913. regular VDSFSCAN has.  VFSLITE is light only in its user interface, not its capabilities.
  914. In fact, it detects the same number of viruses as VDSFSCAN. It is slightly faster in
  915. operation, and it makes an ideal anti-virus tool for networked environments where a
  916. post-login scan is desired. It sets the DOS errorlevel to 1 if it finds a virus, just like
  917. VDSFSCAN. You can test this in a batch file and take appropriate actions such as
  918. denying access to the file server.
  919.  
  920. 1. Options and default settings
  921.  
  922.     The command line options are almost the same for VDSFSCAN.  An INI file can
  923. be used to establish a consistent set of flag settings for everyone. When VDSFSCAN or
  924. VFSLITE starts, they look for an INI file named VDSFSCAN.INI in the same directory
  925. as the program. If it is not present, they look for the same file in the current directory. If
  926. it is not found in the current directory either, they use internal default settings. Since the
  927. INI file is processed first, the command line options can still override the settings in the
  928. INI file.
  929.  
  930.     The default internal flag settings for VFSLITE are as follows:
  931.  
  932. LCD screen = No
  933. Pause = Yes
  934. Allow Break = Yes
  935. Memory scan = Yes
  936. Upper memory scan = No
  937. Beep = Yes
  938. Frequency of scan = 0 (every time)
  939. Quarantine infected files = No
  940. Generate report file = No
  941. Whole file scan = No
  942. Multiple floppy scan = No
  943. All files scan = No
  944. Erase infected files automatically = No
  945. Heuristic scan = No
  946.  
  947.     Note that the frequency of scan is also new. Before, only the integrity checker
  948. component of VDS allowed this. The frequency option works by creating and updating
  949. a file called C:\VDSFREQ.TXT. This text file has one line showing the last date and
  950. time of virus scan. It is updated as necessary. For this option to work correctly, the
  951. computer must have a hard drive and a battery-backed real-time clock. Most systems are
  952. equipped with such devices. If the frequency is set to 0, VFSLITE ignores the frequency
  953. file; otherwise, it will create or update it accordingly.
  954.  
  955. 2. Configuration (VDSFSCAN.INI) file
  956.  
  957.     The VDSFSCAN.INI file is a simple text file with the following format and
  958. entries:
  959.  
  960. 1.  Lines that start with a ; (semi-colon) are comments, and they are ignored.
  961. 2.  Each keyword should be flushed to left and followed by an = (equal) sign.
  962. 3.  After the equal sign, an appropriate value should follow. The value depends on
  963.     the type of the entry, such as log file name, or a YES/NO.
  964. 4.  Upper or lower case can be used interchangeably. Spaces are ignored.
  965. 5.  Value only entries for directories and files to be ignored.   
  966.  
  967.     Another convenient feature is that you can include your own message in the .INI
  968. file. This message will be displayed if a virus is discovered. For example, the number to
  969. the help desk could be displayed.
  970.  
  971.     Here is a sample .INI file:
  972.    
  973. ; This is an INI file for VDSFSCAN-Lite 1.0
  974. ; It contains entries for flag settings that guide the program operation
  975.  
  976. ; On laptops, set the following to Yes for easier-to-read screen output.
  977. LCDSCREEN = No
  978.  
  979. ; Message to display when a virus is found. Leave blank after = if none.
  980. ALERTMSG=Call system administrator x5112 ASAP! You have a virus.
  981.  
  982. ; Report should be sent to the following file. Leave blank after = if none.
  983. REPORT=C:\VFS-STAT.LOG
  984.  
  985. ; File for the user-defined signatures. Leave blank after = if none.
  986. EXTSIGS=C:\XTERNAL.SIG
  987.  
  988. ; Quarantine directory where the infected/suspicious files are copied
  989. QUARANTINE=C:\VDS-CELL
  990.  
  991. ; Ignore the following directories
  992. IGNOREDIR=1
  993. C:\CODE
  994.  
  995. ; Ignore the following files
  996. IGNOREFILE=2
  997. C:\CONFIG.SYS
  998. C:\AUTOEXEC.BAT
  999.  
  1000. ; Frequency of scanning in days. Must be between 1-30. 0 means scan every time.
  1001. FREQUENCY=0
  1002.  
  1003. ; Files are scanned entirely or partially. Leave it at partial (No) normally.
  1004. FULLSCAN=No
  1005.  
  1006. ; Which files to scan. Normally, set it to No.
  1007. ALLSCAN=No
  1008.  
  1009. ; Scan all local drives starting with C: if no command line parameters are given.
  1010. LOCALSCAN=No
  1011.  
  1012. ; Scan base memory.
  1013. MEMSCAN=Yes
  1014.  
  1015. ; Scan upper memory.
  1016. UMBSCAN=No
  1017.  
  1018. ; Pause if a virus is discovered or an error has occurred.
  1019. PAUSE=Yes
  1020.  
  1021. ; Allow user to stop scanning.
  1022. ALLOWBREAK=Yes
  1023.  
  1024. ; Beep if a virus is discovered or an error has occurred.
  1025. BEEP=Yes
  1026.  
  1027. ; Remove infected files. If PAUSE is set to No above, it is automatic.
  1028. ERASEFILE=No
  1029.  
  1030. ; Heuristic scan is on by default. Set it to No if causes false positives.
  1031. HEURISTICSCAN=Yes
  1032.  
  1033. 3. Command line options
  1034.  
  1035.     VFSLITE accepts the following command line options:
  1036.  
  1037. VFSLITE.EXE  [{-|/}R|V<filename>] [{-|/}ABCDEGH?LMNPQUZ] [{-|/}Fnn] [drive: | Path]  
  1038.  
  1039. -A  All files regardless of type
  1040. -B  Break/ESC is NOT allowed
  1041. -C  Complete file scan
  1042. -D  Drives to scan follows. If no drives given, scan all local drives starting with C:  
  1043. -E  Erase infected files   
  1044. -Fnn     Frequency of scanning in days (0-30). Default is 0, scan every time.
  1045. -G  Perform heuristic scan. Off by default.
  1046. -H or ?    Help for command line options
  1047. -L  LCD screen attributes
  1048. -M  Multiple floppy diskettes will be scanned. Ask for the next disk.
  1049. -N  No memory scan
  1050. -P  Do NOT pause. Default is pause.   
  1051. -Q  Quiet scan. Do not beep.
  1052. -R  Output report. If no file is given, C:\VFS-STAT.LOG is used.
  1053. -U  Upper memory scan (as well as base memory)
  1054. -V  Virus signature file. VFSLITE always looks for XTERNAL.SIG first.
  1055. -Z  Zoo-test. Log both infected and clean files during scan.
  1056.  
  1057. Examples:
  1058.  
  1059. To scan drive D:
  1060.     VFSLITE  D:
  1061.  
  1062. To scan drive C once every three days:
  1063.     VFSLITE  -F3  C:
  1064.  
  1065. To scan drives C: and D:
  1066.     VFSLITE  -D  C: D:
  1067.  
  1068. To scan all local drives starting with C:
  1069.     VFSLITE  -D
  1070.  
  1071. To scan all files on drive C:
  1072.     VFSLITE  -A  C:
  1073.  
  1074. To scan C:\DOS directory:
  1075.     VFSLITE  C:\DOS
  1076.  
  1077. To scan multiple diskettes in drive A::
  1078.     VFSLITE  -M  A:
  1079.  
  1080. To scan entire contents of files on C:
  1081.     VFSLITE  -C  C:
  1082.  
  1083. To erase infected files on C:
  1084.     VFSLITE  -E  C:
  1085.  
  1086. To disable beep sound and scan drive C:
  1087.     VFSLITE  -Q  C:
  1088.  
  1089. To scan drive C: without pause (useful during "zoo" testing):
  1090.     VFSLITE  -P  C: 
  1091.  
  1092. To specify a non-default external signature file:
  1093.     VFSLITE  -Vf:\vds30\mysigs.sig  C:
  1094.  
  1095. To specify a non-default report file:
  1096.     VFSLITE  -Rc:\results.vds  C:
  1097.  
  1098. To scan drive C: and put the results in VFS-STAT.LOG file:
  1099.     VFSLITE  -R  C:
  1100.  
  1101. To skip memory scan and scan drive C:
  1102.     VFSLITE  -N  C:
  1103.  
  1104. To scan base and upper memory and drive C:
  1105.     VFSLITE  -U  C:
  1106.  
  1107. To see this help message:
  1108.     VFSLITE  -H
  1109.  
  1110. 4. DOS errorlevels returned
  1111.  
  1112.     To facilitate use of VFSLITE in batch files, DOS errorlevel is set as follows:
  1113.  
  1114. errorlevel = 0     No viruses found
  1115. errorlevel = 1     Infected/suspicious files found
  1116. errorlevel = 2     Self-check failed
  1117.  
  1118. Here is an example batch file:
  1119.    
  1120. VFSLITE  C:
  1121. if errorlevel = 2 goto PROBLEM
  1122. if errorlevel = 1 goto VIRUS  
  1123.  
  1124. goto END
  1125.  
  1126. :VIRUS
  1127. echo You might have a computer virus. Call help desk at 5112 ASAP!
  1128. pause
  1129. goto END
  1130.  
  1131. :PROBLEM
  1132. echo Virus scanner is damaged. Call help desk at 5112 to get a new copy!
  1133. pause
  1134.  
  1135. :END
  1136.  
  1137. 5. Differences between VDSFSCAN and VFSLITE options
  1138.  
  1139.     There are a few command line options that work differently in VDSFSCAN.
  1140. Some of these options are available only in one or the other; while others have a
  1141. completely different purpose. 
  1142.  
  1143. -M  Instructs VFSLITE to scan multiple floppy disks, asking for the next disk after
  1144.     each one. VDSFSCAN does not have this option.
  1145. -S  Instructs VDSFSCAN to recursively scan subdirectories within directories.
  1146.     VFSLITE does not recognize this option, although it functions as if -S is specified.
  1147. -L  Instructs VFSLITE to use monochrome attributes. VDSFSCAN accepts this
  1148.     option as "Log errors".  VDSFSCAN uses -LCD instead.
  1149. -D  VFSLITE allows drives to be specified following this option. VDSFSCAN
  1150.     interprets it as "Scan all local drives". Note that VFSLITE will also scan all local
  1151.     drives if no drives are specified.
  1152. -Z  Instructs VDSFSCAN to use compatibility mode for decoy launching. VFSLITE
  1153.     interprets it as "Zoo-test" option, which forces every scanned file  to be reported
  1154.     in the log. This option is for testing purposes only. H. How to use VITALFIX
  1155.  
  1156.     VITALFIX is a utility program designed to automate recovery from an MBR
  1157. (master boot record) infection, and to allow the user to perform low level operations on
  1158. a hard disk such as sector editing. 
  1159. It can place a fresh copy of MBR code without disturbing the existing partition table. It
  1160. can backup an MBR to a file on a floppy diskette. It even allows you to take a clean
  1161. MBR from one computer, and a partition table from an infected one, combine them
  1162. together and put it back on the infected system, effectively replacing the viral code while
  1163. leaving the partition table intact. This is possible since most computers partitioned using
  1164. the same FDISK program will contain similar code, and differ only in the contents of
  1165. their partition tables. 
  1166.     If you simply let VITALFIX construct an MBR for you, you will have our MBR
  1167. code placed on your disk. Since this piece of code has to do "standard" stuff, there should
  1168. not be any problems. Please let us know if it does not work on your system. We have
  1169. tested it on several IBM computers and compatibles with a variety of hard disks.
  1170.     VITALFIX is a menu-driven program. You simply highlight the option you are
  1171. interested in and press enter. You could also press the first letter of an option to activate
  1172. it. Context-sensitive help is available by pressing the F1 key.
  1173.     VITALFIX has some interesting features such as the capability to search for a
  1174. relocated MBR all over a hard disk and to view the contents of any given sector. You can
  1175. also write contents of a file to a sector and vice versa. It also allows you to edit sectors.
  1176. Please be very careful when doing any write operations since a simple mistake could
  1177. damage your data.
  1178.     You should always boot the computer from a write-protected, clean system
  1179. diskette before using VITALFIX. This will eliminate any memory resident viruses or
  1180. programs that may interfere with disk operations. 
  1181.  
  1182. 1. Command line options
  1183.  
  1184. VITALFIX has the following command line options:
  1185.  
  1186. VITALFIX [{-|/}X | LCD | H | ?]
  1187.  
  1188. -X       Compatibility mode. Use INT 13h.
  1189. -LCD          Use monochrome attributes.
  1190. -H or ?  Display command line options.
  1191.  
  1192. I. Scenarios and Messages
  1193.  
  1194.     During its operation, VDS may issue several warning messages. Following is a list
  1195. of scenarios that will highlight common warnings, their reasons, and recommended actions
  1196. to take.
  1197.  
  1198. Message: Partition sector modified. Will attempt to restore.
  1199. Reason:  There is a good chance that either a partition sector infector has entered the
  1200.          system, or some other damage to the partition sector has occurred. 
  1201. Action:  VDS will attempt to restore the partition sector and reboot the system. If the
  1202.          verification fails again, VDS will abort the restoration attempt and recommend
  1203.          a floppy recovery using the VDS emergency diskette.
  1204.  
  1205. Message: No message, VDS simply hangs the machine.
  1206. Reason:  If VDS has been running just fine, but stopped functioning now, then
  1207.          VDS.EXE may be corrupted either by accident or by an overwriting virus
  1208.          which failed to preserve its victim's operation. It is also possible that some
  1209.          TSR program caused a conflict. Assuming VDS runs as the first program in
  1210.          your AUTOEXEC.BAT file, and CONFIG.SYS is not modified, you should
  1211.          assume the worst case: a virus attack.
  1212. Action:  Reboot the computer from VDS emergency diskette or a write-protected known-
  1213.          to-be-clean system diskette. If you have prepared the VDS emergency diskette,
  1214.          then run VDS from A drive with the CURE option:
  1215.  
  1216.                A:\VDS  -C  <enter>
  1217.  
  1218.               * You can simply run REPAIR.BAT
  1219.  
  1220. Message: VDS requires DOS 3.0 or higher to run.
  1221. Reason:  The version of DOS installed on your computer was below 3.0.
  1222. Action:  You need to upgrade to DOS 3.0 or above. VDS will not run on systems with a
  1223.          lower DOS version.
  1224.  
  1225. Message: Error occurred during installation.
  1226. Reason:  This is a generic message that indicates a malfunction during installation.
  1227. Action:  You should see some other error messages come up before this one. The cause
  1228.          can be determined based on those. Go back and check if you followed all the
  1229.          steps in the installation procedure.
  1230.  
  1231. Message: Different DOS version. If you upgraded DOS, reinstall VDS.
  1232. Reason:  DOS version during installation was different than the current one.
  1233. Action:  The system floppy used during installation should have the same DOS version
  1234.          you have on the hard disk.
  1235.  
  1236. Message: Need 1 megabyte free space on hard disk to install VDS.
  1237. Reason:  VDS found that there is not enough space on the hard disk.
  1238. Action:  You should delete some files to free up space and then run INSTALL again.
  1239.  
  1240. J. Common Questions and Answers
  1241.  
  1242.     This section addresses some common questions about VDS.
  1243.  
  1244. Q - Do I have to know a lot about viruses to be able to use VDS on my
  1245.     system?
  1246.  
  1247. A - Not at all. One of the design goals was to create a program that can be easily
  1248.     used by novice computer users. Viruses present some unique complexities even
  1249.     to the experienced computer security experts. VDS can alleviate most virus-related
  1250.     problems automatically. You are, however, encouraged to become familiar with
  1251.     general guidelines to deal with computer viruses.
  1252.  
  1253. Q - Can I run VDS under MS Windows 3.x?
  1254.  
  1255. A - Yes, you can. We recommend that you either create a PIF file with full window
  1256.     option on, or shell to DOS first. Do not try to switch tasks while VDS.EXE is
  1257.     running. VDSFSCAN can run in the background in 386 enhanced mode.
  1258.     VITALFIX should never be run from inside Windows since it accesses the hard
  1259.     disk directly.
  1260.  
  1261. Q - Is VDS compatible with DOS 6.x?
  1262.  
  1263. A - Yes, indeed!  We have tested VDS on various systems running MS/PC DOS 3.0.
  1264.     3.1, 3.2, 3.3, 4.01, 5.0, and 6.0. We did not encounter any problems. Please let
  1265.     us know if you do.
  1266.  
  1267. Q - Can I run VDS under OS/2?
  1268.  
  1269. A - Maybe on systems with FAT file systems, not HPFS. You can run it in OS/2
  1270.     DOS box in a limited fashion. Extensive testing under OS/2 is not done.
  1271.  
  1272. Q - I have a program that requires to be run before other programs in
  1273.     AUTOEXEC.BAT. Since VDS should be the first program to run, how
  1274.     can I resolve this conflict?
  1275.  
  1276. A - There is no conflict from a technical point of view. The other programs that force
  1277.     you to run them first usually re-vector several interrupts to their memory resident
  1278.     code. If another program grabs these interrupts, then they would not be able to
  1279.     guarantee proper operation. Running VDS as the first program does not affect
  1280.     these programs since VDS is not memory-resident and it does not hook any
  1281.     interrupts. If you run other resident programs, however, they may conflict with
  1282.     the operation of VDS. The solution is to run VDS as the very first program in
  1283.     AUTOEXEC.BAT. Remember that the other programs need protection against
  1284.     viruses as well. If VDS runs first, it can check them before a possibly infected
  1285.     program is run. If VDS itself is infected, it will notice that fact and warn you.
  1286.  
  1287. Q - Does VITALFIX work on IDE drives?
  1288.  
  1289. A - Yes, it does. VITALFIX is compatible with all types of hard drives currently in
  1290.     use. This includes drives with MFM, RLL, IDE, SCSI, and ESDI controllers. The
  1291.     only problem we have come across was on disks that used a compression or
  1292.     security program that rendered the disk unreadable unless all access was done
  1293.     through the interface these programs provided. VITALFIX cannot tolerate such
  1294.     restrictions since it must have direct access to the bare drive. Anything less would
  1295.     open up a security loophole if a virus is active when VITALFIX is operating. It
  1296.     is always a good idea to boot the computer from the original DOS diskette before
  1297.     using VITALFIX. As a precaution, VITALFIX checks the partition table to find
  1298.     out if the drive has any non-DOS partitions, and will warn you if this is the case.
  1299.     In some cases, the partition table may not be available to make that
  1300.     determination. If you know you have non-DOS partitions or compressed
  1301.     partitions, we strongly suggest that you do not use VITALFIX to perform any of
  1302.     the functions that involve writes to the disk.
  1303.  
  1304. Q - My computer is infected with a virus already. How can I use VDS to
  1305.     deal with this problem?
  1306.  
  1307. A - The approach to this problem depends on what kind of a virus you are dealing
  1308.     with. VDS can help you locate which parts of the system are affected if it is a
  1309.     virus that can be identified using our search strings. 
  1310.     If it is a boot sector infector, you can simply turn off the computer, boot from a
  1311.     write-protected floppy diskette and run SYS program to put a clean boot sector
  1312.     onto your hard drive. If it is a program file infector, you need to replace the
  1313.     infected files from the original distribution diskettes. 
  1314.     In the case of partition sector viruses, we recommend that you use
  1315.     VITALFIX.EXE. This utility automates locating MBR, and even constructs one
  1316.     if necessary. 
  1317.     You may be able to get the original partition sector back, if the virus relocated it
  1318.     to another sector on track 0, head 0 (as some do). You need to fire up a low-level
  1319.     disk editor, and look through head 0, track 0. The first sector contains the Master
  1320.     Boot Record (partition sector), and may have been replaced by the virus code.
  1321.     Look at each sector (17 of them on an MFM drive), and see if any one has AA55
  1322.     as the last two bytes in the sector. These identification bytes are present on all
  1323.     legitimate partition sectors as well as boot sectors. Remember that this is a trial-
  1324.     and-error process, so it may not work. You may want to seek assistance from a
  1325.     local computer "guru" if necessary. Make sure you save the current copy of the
  1326.     partition sector on a floppy diskette first. 
  1327.     If the hard disk is accessible after booting from a floppy diskette, then the
  1328.     partition table (64 bytes near the end of the master boot record) may still be valid.
  1329.     The code that loads the active boot sector may belong to the virus. If you can
  1330.     extract the partition table information from the current copy of the partition
  1331.     sector, you may even be able to place it into a good partition sector you get from
  1332.     a similar computer with a similar disk. You can then place this combination of
  1333.     partition table from the infected system and partition sector code from the clean
  1334.     system on top of the current partition sector on the infected system and reboot.
  1335.     This might just do the trick. Be very careful, however, and backup all your data
  1336.     files before starting this surgical operation. You might end up clearing the MBR
  1337.     and repartitioning the disk as a last resort. 
  1338.  
  1339.  
  1340. Q - Does VDS have a TURBO mode versus a SECURE mode?
  1341.  
  1342. A - Yes. If you set QUICK_VERIFY=YES in the configuration file, VDS will
  1343.     operate in TURBO verification mode, which is faster but less accurate than
  1344.     VERIFY mode. Turbo mode is not recommended for data integrity.
  1345.  
  1346. Q - How secure is VDS encryption scheme?
  1347.  
  1348. A - Our purpose was not to come up with an unbreakable (if there is any such
  1349.     scheme) encryption method, but to use something more secure than good old
  1350.     XOR. Contrary to popular belief, the robustness of an anti-viral integrity system
  1351.     cannot be measured by the sophistication of the encryption algorithm it uses.
  1352.     Some people even believe that they can deal with stealth viruses easily if they
  1353.     use an encryption scheme that cannot be forged. That is not so. The stealth
  1354.     viruses intercept the verification routine's attempts to access the modified
  1355.     executables on the disk, and present them with a clean copy. No matter how
  1356.     sophisticated the algorithm used to generate a signature is, it will be fooled every
  1357.     time since the verifier is getting clean (the same as the original) input. While these
  1358.     people are perfecting the technique to compute a one-way cipher of extreme
  1359.     complexity, stealth viruses are having a ball on the disk they choose to invade. Of
  1360.     course, if a direct attack is a concern, then more secure encryption methods are
  1361.     very useful. In the DOS environment, manipulating the disk access is much easier
  1362.     and works in most cases. So, if someone tells you they got a superior multi-stage
  1363.     encryption routine that can come up with secure keys for their anti-viral product,
  1364.     just ask them why they chose to waste their time on such an endeavor!  Viruses
  1365.     are not an attack to the secrecy but to the integrity and availability of computer
  1366.     systems. Unfortunately, many self-proclaimed experts seem to confuse these
  1367.     separate issues.
  1368.  
  1369. Q - I heard some programs create hidden files on the disk. Does VDS
  1370.     create any hidden files?
  1371.  
  1372. A - Absolutely not. We have nothing to hide from the end-users!  Almost everything
  1373.     VDS creates is restricted to the VDS home directory. Decoys and report files may
  1374.     be created in the root directory as well.
  1375.  
  1376. Q - Does the VDS authentication scheme eliminate the possibility of a
  1377.     trojan version of the program?
  1378.  
  1379. A - To some extent. "Trojanization" has been a problem with many software
  1380.     packages in the market. VDS authentication scheme provides a reasonable
  1381.     amount of assurance that the copy you have is actually created by the original
  1382.     developers. It is possible to circumvent this mechanism and display a fake
  1383.     message. This can be considered a direct attack. Remember, a direct attack
  1384.     against any program is possible (you can safely ignore those who claim otherwise).
  1385.     The purpose is to provide another layer of security. If every software product in
  1386.     the market put in as much effort as VDS does, there would be less incidents of
  1387.     trojans. You should get your programs from reliable sources. If you see a program
  1388.     claiming to do major database work, and it is only 4K long, you should double-
  1389.     check on it!
  1390.  
  1391. Q - I backup my hard disk regularly. Do I still need an anti-viral program
  1392.     to be safe?
  1393.  
  1394. A - Yes, you still need a program such as VDS. Backups can help when recovering
  1395.     from damage. The problem is by the time you notice that the system is infected,
  1396.     the virus may have been transferred to the backup media. When you restore the
  1397.     system, you may very well restore the virus too!  In some cases, the virus may
  1398.     corrupt the backup diskettes and render them useless. One person reported that
  1399.     Stoned virus corrupted all his backup diskettes while he tried to backup his hard
  1400.     disk to be able to perform a low-level format. Unfortunately, the Stoned virus was
  1401.     active in memory at the time. By the way, when was the last time you verified
  1402.     that you can actually restore from your backups?
  1403.  
  1404. Q - What are "POV" files?
  1405.  
  1406. A - POV stands for "Prisoner Of VDS". These files are created by VDS when it
  1407.     detects an active virus in memory that attacks upon file access. When VDS
  1408.     introduces decoys into the system, some viruses immediately attack them. VDS
  1409.     notices this fact and captures the intruder in a file. VDS will also capture a
  1410.     modified boot or partition sector in POVBOOT.BBB or POVPART.PPP file in
  1411.     the VDS home directory. This feature speeds up the diagnosis process. In other
  1412.     words, you will have the captured virus stored in a file that you can analyze (or
  1413.     have someone analyze it since this would require familiarity with the 80x86
  1414.     assembly language). Remember that not every virus can be caught this way. If you
  1415.     catch a virus, you are encouraged to mail it on a diskette to us for analysis.
  1416.  
  1417. Q - My company wants to purchase VDS for all our PCs, but we are not
  1418.     sure if there is an expiration date on use of VDS?  Is it necessary to
  1419.     renew the VDS site license on a regular basis?
  1420.  
  1421. A - We believe that the end-user has a right to run the version of a program he paid
  1422.     for as long as he is satisfied with its operation. For updated copies of VDS, we
  1423.     offer different licensing agreements.
  1424.  
  1425. Q - Is it possible for a data file to become infected by a virus?
  1426.  
  1427. A - The criteria for a virus to do anything at all is that it must gain control of the
  1428.     CPU. An ordinary data file will never have such control. The possibility exists for
  1429.     macro or script files that some application software packages provide to automate
  1430.     certain operations. There are no common viruses that exploit this feature.
  1431.     Another possibility is to cause damage as a side effect, for example, by redefining
  1432.     a key sequence as a substitute for a destructive command, assuming a driver such
  1433.     as ANSI.SYS is loaded. Again, these are very limited ways that a virus can
  1434.     propagate, if at all. Batch files can also be used to activate a program that
  1435.     contains a virus. The problem is that it is too obvious and will be detected easily.
  1436.     
  1437. K. Known Problems and Conflicts
  1438.  
  1439.     This section addresses various conflicts or problems with the operation of VDS
  1440. that we are aware of. You are encouraged to report any problems you discover.
  1441.  
  1442. 1. SETVER.EXE that comes with MS/PC DOS 5.0 causes false alarms.
  1443.  
  1444.     SETVER.EXE program modifies itself to keep track of programs and the version
  1445. of DOS they should get as a result of INT 21h, function 30h call. Many consider such
  1446. self-modifying programs "ill-behaved". Until developers of DOS come up with a better
  1447. way to accomplish the same task, you are likely to get false alarms. We do not intend to
  1448. accommodate use of such a questionable practice.
  1449.  
  1450. 2. When scanning a Netware volume, VDS reports an ERROR condition on some files.
  1451.  
  1452.     Certain files such as NET$OBJ.SYS are open and locked by the Netware
  1453. operating system. They contain bindery information. Any attempt to open them will result
  1454. in an error condition. You should not be concerned since this is a feature not a bug!
  1455.  
  1456. 3. Some programs are reported to be suspicious when I enable the HEURISTIC_SCAN.
  1457.  
  1458.     Heuristic scan is a method that allows early recognition of viral code. Certain
  1459. coding techniques are common to many viruses. By looking for such indications, VDS is
  1460. able to recognize some new viruses. The problem is that there may be legitimate programs
  1461. that also use such code. The only guaranteed way to establish whether a virus is present
  1462. is by performing an analysis of the suspected program.  We try to minimize such false
  1463. alarms, and we would be interested in hearing from you if you come across a suspicious
  1464. file.
  1465.                      
  1466.                      V. VIRUS ATTACK METHODS
  1467.  
  1468. A. Virus defined
  1469.  
  1470.     A virus is a piece of  programming code that has the ability to replicate itself by
  1471. attaching to other executable objects, either by logical or physical means. In addition to
  1472. its replication task, a virus may have a manipulation task in the form of a damage routine.
  1473. Most PC viruses are written in the 80x86 assembly language to keep their size small and
  1474. to gain greater flexibility in manipulating the operating system and other program files.
  1475.     Researchers classify PC viruses in several ways. We prefer to separate the structure
  1476. of the implementation of viruses from the objects they attack. We classify them by their
  1477. features and types.
  1478.  
  1479. B. Features of PC Viruses
  1480.  
  1481.     There are several features of  PC viruses:
  1482.             
  1483. 1. Stealth Virus:
  1484.  
  1485.     A virus that has the capability to hide the modifications it has made to its victims
  1486. to evade detection. For example, the virus may hide the file size increase when the user
  1487. attempts to get a  directory listing. Another example would be a boot sector virus that
  1488. returns the original boot sector when a program attempts to read it. To accomplish such
  1489. tricks, a stealth virus usually stays resident in memory and monitors disk access either at
  1490. the DOS or BIOS level. This way, it can see each disk access request and alter the results
  1491. to hide the modifications it has made. There are varying degrees of stealth capability. In
  1492. other words, it may be possible to discover the presence of a virus using an alternate
  1493. mechanism to examine the object that may have been affected.
  1494.    
  1495. 2. Dumb Virus:
  1496.  
  1497.     A virus with no stealth capability. Such a virus makes no attempts to conceal its
  1498. presence. The most apparent change is the increase in file size since the virus added its
  1499. code to the program file. An alert user can notice such a change easily. This is the most
  1500. common feature of  PC viruses.
  1501.    
  1502. 3. Encryptive Virus:
  1503.  
  1504.     A virus that keeps its code encrypted and includes a decryptor to restore itself.
  1505. The purpose of encryption is to make it difficult to extract a scan string. The decryption
  1506. routine is designed to contain variable sections so that it is not easily  recognized. It is
  1507. possible to detect such viruses using a wildcard pattern that matches the decryptor.
  1508.    
  1509. 4. Polymorphic Virus:
  1510.  
  1511.     A virus that keeps its code encrypted and includes a highly variable decryptor to
  1512. restore itself. It is not possible to extract a wildcard scan string to recognize the decryptor.
  1513. One has to design an appropriate algorithm to detect it. We usually analyze the structure
  1514. of the decryptor and identify its key features, and then use this information to implement
  1515. a detection routine.
  1516.  
  1517. C. Types of PC Viruses
  1518.  
  1519.     There are three major types of PC viruses:
  1520.    
  1521. 1. MBR/BR Virus:
  1522.  
  1523.     A virus that attacks the master boot record or the DOS boot record of a disk.
  1524. This type of virus usually moves the original contents of the boot sector and replaces it
  1525. with its own code. Key data structures within the boot sector (partition table or BIOS
  1526. parameter block) are almost always left intact not to mess up the operation of DOS. A
  1527. boot sector virus reserves memory for itself by reducing the base memory size (e.g., 640K
  1528. to 638K), and copies its code to the top of memory. There are a few boot sector viruses
  1529. that remain in low memory as well. Almost all boot sector viruses monitor the BIOS disk
  1530. interrupt (INT 13h) to spread or to hide themselves. Every time a disk is accessed, they
  1531. get control and check if the disk being accessed is already infected. If not, they can infect
  1532. it before returning control to the original interrupt handler.
  1533.    
  1534. 2. Program Infector:
  1535.  
  1536.     A virus that attaches to program files. There are a few subcategories for this type
  1537. of viruses:            
  1538.  
  1539. a. Simple Infector: 
  1540.  
  1541.     A virus that modifies a program file physically to add its code. The program file
  1542. entry point is adjusted so that the virus gets control when the program is executed.
  1543.       
  1544. b. Companion Virus: 
  1545.  
  1546.     A virus that logically inserts itself into the search path so that it gets control when
  1547. the user attempts to run a program that has the same file name. The most common
  1548. variety exploits the fact that DOS runs a program file with a COM extension rather than
  1549. the one with an EXE extension if both of them exist. Another possibility is to insert the
  1550. virus in the search path. If the user does not specify the exact location of the program,
  1551. then DOS will use the path to look for it. If the virus program comes before the actual
  1552. program in the search path, then the virus will get executed. This type of virus is rare
  1553. indeed.
  1554.       
  1555. c. System Infector: 
  1556.  
  1557.     A virus that alters DOS system data structures so that it gets control instead of the
  1558. program the user intends to run. For example, DIR-2 virus manipulates the directory
  1559. entries to point the starting cluster to its location. When DOS reads the disk to load a
  1560. program, the virus gets loaded. Another possibility is to insert  the virus in a system
  1561. location that DOS is known to always load.
  1562.  
  1563. 3. Multi-partite Virus:
  1564.  
  1565.     A virus that can infect both program files and boot sector of a disk. Dealing with
  1566. such a virus can be quite a nuisance since the first portion of the virus gets control of the
  1567. system even before DOS is loaded. The virus can alter the system vectors to implement
  1568. a potent stealth mechanism, for example. Removing this type of virus requires that all
  1569. affected areas are restored.
  1570.  
  1571. D. Some facts about viruses
  1572.  
  1573. 1. PC-based local area networks are NOT immune to viral attacks.
  1574.  
  1575.     Network connections pose another question by making it easier for the virus to
  1576. travel from one location to another. As long as the user has write access to the programs
  1577. on a disk, it may be able to infect it. If the program file happens to be on a file server,
  1578. all those that run it may cause the virus to jump to their local machines. Can you imagine
  1579. what could happen if the superuser/supervisor runs an infected program on the LAN by
  1580. mistake?
  1581.     It is a misconception that PC-based networks are less susceptible to viruses. The
  1582. boundaries of information flow are not always well-defined. Although many popular LAN
  1583. operating systems provide various control mechanisms that can be used to implement
  1584. robust anti-viral measures, many sites do not take advantage of them. If the users allow
  1585. each other to access one another's directories, for example, the risk of infection is very
  1586. high, and the rate of infection may be even higher compared to spread via floppy
  1587. diskettes. Since many common viruses employ "ill-behaved" programming techniques, they
  1588. cannot infect network file servers even when write/modify access is granted. This does not
  1589. eliminate the risk by any means, but simply makes it less evident.
  1590.  
  1591. 2. Electronic bulletin boards do not necessarily contain infected software.
  1592.  
  1593.     There have been some extreme remarks about the dangers of down-loading
  1594. software from electronic bulletin boards (BBS). In actuality, the sysop (the person that
  1595. maintains the BBS) has to take pains to ensure his board is free of malicious software to
  1596. be able to keep a good reputation. On the other hand, there are supposedly some hacker
  1597. BBSs that provide viruses, even in source code. Your chance of bumping into one of these
  1598. is very little. Please do not be afraid to explore what the BBSs in your area have to offer.
  1599. Many useful programs such as VDS are available for the cost of a local phone call. There
  1600. is no need to be paranoid about the situation, just be aware of the possibilities. It is always
  1601. a good idea to get software only from well-recognized bulletin boards such as the ones
  1602. maintained by user groups. It is a good practice to search the programs you down-load
  1603. for known viruses.
  1604.  
  1605. 3. Write-protected floppy diskettes cannot be infected by a virus as long as
  1606. the floppy drive is working correctly.
  1607.  
  1608.     This is why you should always place a write-protect tab on all original diskettes
  1609. if they are not already protected. The spread of viruses can be effectively slowed down by
  1610. careful use of appropriate control mechanisms.
  1611.               
  1612.               VI. PARTITION/BOOT SECTOR INFECTIONS
  1613.  
  1614. A. Preliminary information
  1615.  
  1616.     It seems that there is much confusion about the difference between a partition
  1617. sector (Master Boot Record is another name for it) and a boot sector among many PC
  1618. users. If you are already familiar with the organization of a typical hard disk, you can skip
  1619. the rest of this section; otherwise, please read on.
  1620.     The very first sector on a typical hard disk stores the partition information for the
  1621. disk. Within the partition sector, a 64-byte area contains enough information to locate all
  1622. physical partitions on the disk, and shows which partition is the active partition. The
  1623. active partition is used to boot the computer. There can be four physical partitions on
  1624. a disk. The partition sector is located outside of any partition boundaries and has enough
  1625. code to determine the active partition, load the boot sector in that partition and transfer
  1626. control to it. The code in the partition sector does not care which operating system it is
  1627. loading. In fact, one reason for having partitions is to allow coexistence of multiple
  1628. operating systems on one hard disk. FDISK program that comes with DOS is used to
  1629. manipulate the partition table.
  1630.     Each partition has a boot sector. The boot sector holds certain information
  1631. about that partition (in an area called BIOS Parameter Block or BPB) such as the number
  1632. of sectors and number of FATs (file allocation table). In the case of the active partition,
  1633. it also contains some code that loads the operating system. DOS partitions can be either
  1634. primary or extended (extended partitions were added in DOS 3.3). The extended partition
  1635. can be further subdivided into logical drives.
  1636.     FORMAT program with the /S option is used to make the active DOS partition
  1637. bootable by setting up the necessary operating system files. FORMAT must also be run
  1638. on every partition to be able store files. This is called high-level formatting. Floppy disks
  1639. do not have partition sectors, they only have a boot sector. That's one reason low-level
  1640. and high-level formatting is combined into one procedure in the case of floppy diskettes.
  1641.     Since the partition sector contains vital information to access the drive, it is
  1642. important that this information be protected. If you lose your partition sector, you might
  1643. have to wipe out the MBR, and repartition the disk. Of course, this operation would make
  1644. all files inaccessible. Fortunately, it is hardly ever necessary to take such an extreme step.
  1645. If you have VDS in place, you should be able to restore your partition table information
  1646. easily.
  1647.     Nevertheless, if you cannot reconstruct the partition table so that you can backup
  1648. your files, or if you just want to get rid of a virus residing in the MBR, you should know
  1649. a few important facts. 
  1650.     1.   A complete low level format of the entire hard disk is not necessary. Using
  1651. a low level disk editor, you can write zeroes over the contents of the MBR and repartition
  1652. the disk. This will get rid of the virus. In fact, certain types of hard drives, namely IDE,
  1653. are not designed to be low level formatted by the end-user. Low level format is necessary
  1654. on brand new drives that do not come pre-formatted from the manufacturer. Getting rid
  1655. of an MBR virus is just a matter of removing its code from MBR and putting a fresh copy
  1656. of the standard MBR code.
  1657.     2.   FDISK will not put a fresh copy of the MBR code if the disk is already
  1658. partitioned; therefore, an MBR virus can survive repartitioning by standard FDISK. This
  1659. might surprise you, but it is a fact so dangerous to ignore. Worse yet, FDISK will destroy
  1660. the boot records and FATs of any modified partitions. For example, if you repartition a
  1661. drive with exactly the same parameters, you will still lose access to your files. 
  1662.  
  1663.     ***  MS/PC DOS 5.0 and higher includes an improved version of the FDISK
  1664.          program. It can replace the MBR code only, while leaving the partition table
  1665.          intact. Unfortunately, the DOS technical documentation does not mention
  1666.          this capability. The command is:
  1667.  
  1668.                    FDISK   /MBR
  1669.  
  1670.     3.   If the partition table is intact, as is the case in most infections, you can
  1671. recover all your data easily. To do this, you should use a utility like VITALFIX, or do
  1672. it manually following the instructions in this document. For details, see the section titled
  1673. MANUAL RECOVERY PROCEDURE under HOW TO DEAL WITH VIRUSES.
  1674.     
  1675.     Following diagram illustrates the organization of a typical hard disk.
  1676.  
  1677.      ┌───────────────────────────────────┐
  1678.      │  Master Boot Record               │ Sec 1, Cyl 0, Head 0
  1679.      ├───────────────────────────────────┤
  1680.      │                                   │
  1681.      ├───────────────────────────────────┤ 
  1682.      │  Active Partition Boot Sector     │
  1683.      ├───────────────────────────────────┤
  1684.      │  File Allocation Table 1 (FAT#1)  │
  1685.      ├───────────────────────────────────┤ Partition 1
  1686.      │  File Allocation Table 2 (FAT#2)  │
  1687.      ├───────────────────────────────────┤
  1688.      │  Root Directory                   │
  1689.      ├───────────────────────────────────┤
  1690.      │                                   │
  1691.      │       Data Area for files         │
  1692.      │                                   │
  1693.      ├───────────────────────────────────┤
  1694.      │  Other Partition Boot Sector      │
  1695.      ├───────────────────────────────────┤
  1696.      │  FAT#1                            │
  1697.      ├───────────────────────────────────┤ 
  1698.      │  FAT#2                            │ Partition 2
  1699.      ├───────────────────────────────────┤
  1700.      │  Root Directory                   │
  1701.      ├───────────────────────────────────┤
  1702.      │                                   │
  1703.      │    Data Area for files            │
  1704.      │                                   │
  1705.      └───────────────────────────────────┘
  1706.      
  1707.      B. How to recover with RESTORE option
  1708.  
  1709.     If the partition table or the boot sector is modified, you can restore it as follows:
  1710.  
  1711.     1.   Turn off the computer.
  1712.     2.   Place the write-protected VDS emergency diskette in drive A.
  1713.     3.   Turn on the computer.
  1714.     4.   Run  VDS. 
  1715.  
  1716.               A:\VDS  -R  <enter>
  1717.  
  1718.     VDS will attempt to use the backup copy of the affected area to restore it. If it
  1719. detects that the backup copy is also modified, it will abort the restoration attempt so as
  1720. not to do more harm than good! The restoration process involves the partition sector,
  1721. boot sector on the active partition, and COMMAND.COM. 
  1722.  
  1723.     5.   If all goes well, VDS will ask you to remove any floppy diskettes and press
  1724.          a key to reboot the system. All system areas should pass the verification tests
  1725.          this time. If they do not, the restoration attempt was unsuccessful, and a
  1726.          manual recovery is necessary.
  1727.  
  1728. C. Manual Recovery Procedure
  1729.  
  1730.     This section assumes you have a standard system partitioned using FDISK, and running
  1731.     MS/PC DOS 3.0 or above. If you have a hard drive with a non-standard geometry, then the
  1732.     following procedure may be more complicated. Exercise caution during this recovery procedure,
  1733.     since you could accidentally render your disk unusable. If you can access the hard disk after
  1734.     booting the computer from a floppy diskette, you should backup all your data files first.
  1735.  
  1736.     If you know or suspect that your hard drive is infected by a virus, you can attempt
  1737. to restore it by carefully verifying that each point in the execution path during start-up
  1738. is clean. To do that, you need to know what points are in the execution path. Refer to
  1739. the diagram below.
  1740.     First get a write-protected (preferably the original) DOS system diskette. You
  1741. cannot format a diskette on a possibly infected system, and be positive that the diskette
  1742. does not get infected. Some viruses stay in memory and infect the floppy diskettes
  1743. whenever they are accessed. Turn the computer OFF. Place the system diskette in drive
  1744. A: and close the drive door. Turn the computer ON. Never trust that a warm-boot (Ctrl-
  1745. Alt-Del) will get rid of a memory resident virus. Some viruses are known to fake a warm-
  1746. boot. Worse yet, some vicious viruses activate their damage routine when you press Ctrl-
  1747. Alt-Del combination. 
  1748.     The purpose of the following procedure is to clean the system areas of a computer
  1749. with a hard disk so that it is safe to boot from the hard disk. Verification of other program
  1750. files are not considered in this discussion. Recommended recovery procedure for infected
  1751. program files is to replace them with the originals. A utility program such as VDSFSCAN
  1752. that searches for infected programs can speed up the process. Virus cleaning utilities are
  1753. NOT recommended. If you know or suspect that a program is infected, copy over the
  1754. original from the distribution diskette. This is the cleanest and the safest approach. If you
  1755. have installed VDS integrity checker on your system, it could restore most programs to
  1756. their original state easily and reliably; even new viruses can be removed with this
  1757. procedure.
  1758.     To attempt recovery, you will need a low level disk editor that allows you to read
  1759. and write any sector on the disk. If you feel intimidated by manipulating your disk in this
  1760. manner, please do not attempt a manual recovery without the help of a friend who has
  1761. experience performing this type of an operation. Nevertheless, VITALFIX is very handy
  1762. to do such low level manipulations. 
  1763.     
  1764.     On a standard PC, the startup sequence looks like the following:
  1765.  
  1766.     Stage 1.
  1767.  
  1768.           point A             point B                   
  1769.     
  1770.        ╔════════════╗      ┌────────────┐               
  1771.        ║  ROM       ║      │  Master    │               
  1772.        ║            ║      │  Boot      │               
  1773.        ║  BIOS      ║      │  Record    │               
  1774.        ║            ║      │  Code      │               
  1775.        ║  CODE      ║      │  [0, 0, 1] │               
  1776.        ║            ║      │            │               
  1777.        ║            ║      │            │               
  1778.        ╚════════════╝      └────────────┘               
  1779.   
  1780.     Stage 2.
  1781.  
  1782.           point C         point D        point E
  1783.        ┌────────────┐  ┌───────────┐  ┌────────────┐    
  1784.        │ Boot       │  │ IBMBIO.COM│  │ IBMDOS.COM │    
  1785.        │ Record     │  │    or     │  │    or      │    
  1786.        │ Code in    │  │ IO.SYS    │  │ MSDOS.SYS  │    
  1787.        │ Active     │  │           │  │            │    
  1788.        │ Partition  │  │           │  │            │    
  1789.        │            │  │           │  │            │    
  1790.        └────────────┘  └───────────┘  └────────────┘    
  1791.        
  1792.           point F         point G          point H      
  1793.       
  1794.        ┌────────────┐  ┌─────────────┐  ┌───────────────┐ 
  1795.        │ Device     │  │ COMMAND.COM │  │ Programs      │       
  1796.        │ Drivers    │  │             │  │ in            │      
  1797.        │ in         │  │             │  │ AUTOEXEC.BAT  │       
  1798.        │ CONFIG.SYS │  │             │  │               │
  1799.        │            │  │             │  │               │
  1800.        │            │  │             │  │               │
  1801.        │            │  │             │  │               │
  1802.        └────────────┘  └─────────────┘  └───────────────┘
  1803.  
  1804.     Stage 1 is independent of any operating system. Point A is implemented in
  1805. hardware and is not modifiable, therefore it cannot be infected. At point B, the code
  1806. resides on the hard disk (head 0, cylinder 0, sector 1). The purpose of point B is to
  1807. provide a mechanism to load different operating systems. You can have your disk
  1808. partitioned so that one partition is for DOS, while another one is for some other operating
  1809. system. By marking one of them as active in the partition table (located within the Master
  1810. Boot Record), you can control which operating system will load upon bootup. The code
  1811. in MBR simply locates the active partition by examining the partition table, loads the
  1812. code in the boot sector of that partition and transfers control to it. The MBR is attacked
  1813. by viruses such as Stoned since it provides very early control of the system. More
  1814. sophisticated viruses can easily redirect BIOS disk access routines (the vector addresses
  1815. reside in the first 1024 bytes of RAM and are modifiable) to evade detection. 
  1816.     Stage 2 is where a specific operating system comes into play. In the case of DOS,
  1817. the code at point C loads the first system file (IBMBIO.COM) and transfers control to it.
  1818. After initializing the DOS kernel, IBMBIO.COM processes the CONFIG.SYS file. Each
  1819. device driver listed in CONFIG.SYS is loaded and initialized. IBMDOS.COM is also
  1820. loaded at this time. At point G, COMMAND.COM gets control and processes
  1821. AUTOEXEC.BAT file if there is one.
  1822. Except for point A, all other points in the execution path are modifiable. You must
  1823. assume that any modifiable code is prone to viral infections. During recovery you must
  1824. assume the worst case and handle each point as if it is infected by a virus. You must also
  1825. remember that a higher point depends on a lower point. In other words, if you do not
  1826. clean point B, you cannot guarantee that point C will not be compromised afterwards. 
  1827.     The MBR code (point B) is easily replaceable. The key item at point B is the
  1828. partition table which contains vital information to access the disk. If the hard disk is
  1829. accessible after booting from a floppy (e.g., DIR C: works fine), then there is a good
  1830. chance the partition table is intact. You should immediately extract the partition table
  1831. information (64 bytes total) from the first sector on head 0, cylinder 0 and store it in a file
  1832. on a floppy diskette. If you have a similar (uninfected) computer with a hard disk, you
  1833. should make a copy of its MBR in a file. The next step is to combine the partition table
  1834. that you stored away with the clean MBR you have taken from the uninfected computer.
  1835. The result is an uninfected MBR that can be used to replace the infected one. Make sure
  1836. when you combine the two pieces, you are editing at the correct offset within the MBR
  1837. sector. Our VITALFIX utility automates this whole process (except swapping diskettes,
  1838. of course!). Here is a simple picture to clear things up:
  1839.  
  1840.                        Master Boot Record
  1841.  
  1842.          Sector 1 on head 0, cylinder 0
  1843.  
  1844.                                partition table
  1845.          1                447                512
  1846.           ╔═════════════════╤═══╤═══╤══╤═══╤══════╗
  1847.           ║                 │   │   │  │   │ AA   ║
  1848.           ║   MBR Code      │ 1 │ 2 │ 3│ 4 │ 55   ║
  1849.           ║                 │   │   │  │   │      ║
  1850.           ╚═════════════════╧═══╧═══╧══╧═══╧══════╝
  1851.  
  1852.     Note that the partition table has four entries making it possible to divide the disk
  1853. into four distinct areas. The MBR code is the same on most PCs as long as you use the
  1854. same FDISK program. The partition table depends on how the disk is set up. The last
  1855. two bytes must be AA55 by convention.
  1856.     Some viruses simply relocate the whole MBR sector to another location on the
  1857. disk, then place their code in sector 1, head 0, cylinder 0. They also redirect disk access
  1858. routines and present the original copy when someone attempts to access the MBR. This
  1859. is an evasion technique used by certain viruses that target the MBR. Since you have
  1860. booted from a clean floppy diskette, you do not have to worry about this. If you can find
  1861. the original MBR on the disk (usually relocated to another sector on head 0, cylinder 0),
  1862. then you could simply put it back to sector 1, head 0, cylinder 0 to recover. For example,
  1863. one variant of Stoned virus places the original MBR to sector 7, head 0, cylinder 0. In
  1864. that case, follow the procedure outlined above.
  1865.     Once you restore the MBR, you can move on to point C and verify it. The easiest
  1866. way to accomplish that is to use SYS.COM program included with DOS. SYS will put
  1867. a fresh copy of the boot sector code as well as replacing IO.SYS and MSDOS.SYS. This
  1868. operation cleans points C, D, and E (three birds with one stone).
  1869.     Point F involves verifying each device driver listed in the CONFIG.SYS file.
  1870. Unless you need a device driver to access the disk due to non-standard geometry, you can
  1871. simply delete (or rename) CONFIG.SYS. Otherwise, you have to copy the device drivers
  1872. from the original diskettes to the hard disk. Make sure you are copying over the ones that
  1873. CONFIG.SYS activates.
  1874.     Point G is easy to take care of by copying COMMAND.COM from the original
  1875. DOS diskette to the hard disk. If you have a shell statement in CONFIG.SYS that
  1876. specifies a different command interpreter, then make sure you replace that one with the
  1877. original.
  1878.     Point H can be handled by deleting (or renaming) AUTOEXEC.BAT since it is
  1879. not required.
  1880.     Now the system is ready to be booted from the hard disk without reactivating a
  1881. possible virus. Of course, the first time you run an infected program, everything you have
  1882. cleaned so far might get reinfected. Did we say dealing with viruses can be a little tricky?
  1883.                   
  1884.                   VII. HOW TO DEAL WITH VIRUSES
  1885.  
  1886. A. Recommended Guidelines
  1887.  
  1888.     When dealing with viruses, there are a few rules to go by, all of which make good
  1889. common sense. These rules are:
  1890.  
  1891. 1.  If there is a possibility that your hard drive is infected, do not use a
  1892.     floppy diskette on that computer unless it is write-protected.
  1893.  
  1894.     Rationale:     If you did NOT cold-boot the computer from a clean floppy
  1895.                    diskette, the virus may be active in memory and it can infect the
  1896.                    floppy diskettes used in the drives. This is, after all, a common
  1897.                    way for spreading infections among computers.
  1898.  
  1899. 2.  Do not boot a hard drive system from a floppy diskette unless you are
  1900.     positive that the floppy is virus-free.
  1901.  
  1902.     Rationale:     This follows from Rule #1. The virus can infect the hard disk.
  1903.                    The result is a hard disk that passes on the virus to other floppies.
  1904.                    The floppy can carry a boot sector virus even if it was not
  1905.                    formatted to be a system diskette, because all DOS diskettes have
  1906.                    a boot sector.
  1907.  
  1908. 3.  If your PC is connected to a local area network, and you detect that
  1909.     your system may be infected by a virus, disconnect your PC from the
  1910.     network immediately.
  1911.  
  1912.     Rationale:     The purpose is to isolate the infection in order to minimize the
  1913.                    spread, and reduce the time required to clean the system. Make
  1914.                    sure you know how to disconnect only your PC. Pulling out the
  1915.                    wrong cable may bring down a whole subsection of the network.
  1916.  
  1917. 4.  If you receive new programs (especially games), test them on a
  1918.     machine that does not have valuable data before installing these
  1919.     programs on other computers.
  1920.  
  1921.     Rationale:     This precaution will help prevent the introduction of new viruses
  1922.                    into the system. Even shrink-wrapped software may contain a
  1923.                    virus. There have been some unfortunate incidents where major
  1924.                    computer companies shipped infected diskettes to their customers
  1925.                    by mistake.
  1926.  
  1927. 5.  If you do not feel technically competent to handle a virus attack,
  1928.     contact someone who can help.
  1929.  
  1930.     Rationale:     Dealing with viruses can be a very tricky business. You cannot
  1931.                    afford to leave a single infected file on your system. It takes only
  1932.                    one infected program to continue the spread of the virus.
  1933.  
  1934. 6.  When you want to backup your hard disk, boot from a write-
  1935.     protected, clean floppy diskette. Preferably use file-by-file backup
  1936.     mode instead of image backup.
  1937.  
  1938.     Rationale:     Some viruses remain active in memory and interfere with disk
  1939.                    access. They are likely to corrupt the backup diskettes. File-by-file
  1940.                    mode gives you a better chance to recover damaged backups.
  1941.  
  1942. 7.  Write protect all original diskettes as well as their backups before
  1943.     using them.
  1944.  
  1945.     Rationale:     This would prevent infection of your program diskettes should
  1946.                    they be used in an infected system. Besides, during recovery you
  1947.                    can be assured that the originals are not corrupted.
  1948.  
  1949. 8.  Before using programs that came on floppy diskettes, search them for
  1950.     known viruses.
  1951.  
  1952.     Rationale:     Many companies are just beginning to realize the threat the
  1953.                    viruses pose. They may or may not have a virus-free program
  1954.                    development environment. It is better not to take any chances
  1955.                    and check the diskettes yourself. If you find a write-protected,
  1956.                    original program diskette to be infected, first contact the company
  1957.                    that sold you the disk and complain.
  1958.  
  1959. 9.  If your BIOS supports choosing a default disk to boot, set it to C:.
  1960.  
  1961.     Rationale:     This will eliminate the possibility of inadvertently booting from
  1962.                    an infected floppy diskette left in drive A:. Some modern BIOSes
  1963.                    offer a setup option that allows you to always boot from your
  1964.                    hard disk, even if there is a floppy diskette in drive A:. Many
  1965.                    common boot sector infectors like the Stoned virus can infect
  1966.                    your hard disk only if you boot your computer from an infected
  1967.                    floppy diskette.
  1968.                    
  1969.